public static User RegisterUser(string fullUserName)
{
if (string.IsNullOrEmpty(fullUserName))
return null;
var slashIndex = fullUserName.IndexOf('\\');
var domain = fullUserName.Substring(0, slashIndex);
var username = fullUserName.Substring(slashIndex + 1);
var user = User.Load(domain, username);
if (user != null)
return user;
try
{
AccessProvider.Current.SetCurrentUser(User.Administrator);
var dom = Node.Load<Domain>(RepositoryPath.Combine(Repository.ImsFolderPath, domain));
if (dom == null)
{
//create domain
dom = new Domain(Repository.ImsFolder) { Name = domain };
dom.Save();
}
//create user
user = new User(dom) { Name = username, Enabled = true, FullName = username };
user.Save();
Group.Administrators.AddMember(user);
}
finally
{
if (user != null)
AccessProvider.Current.SetCurrentUser(user);
}
return user;
}