如何使创建的本地窗口用户能够从 C# 登录到他的帐户
本文关键字:登录 创建 何使 用户 窗口 | 更新日期: 2023-09-27 17:55:54
我已经创建了本地Windows帐户,并将其添加到使用System.DirectoryServices.AccountManagement命名空间中的类的组用户中。然后我尝试登录该新创建的帐户(手动而不是从 C# 登录),并收到错误"无法加载用户配置文件服务失败的用户配置文件"。我的 C# 代码是:
try
{
// Create context for server and create new user if one not exists
string userID = GetUserID(userName, userType);
PrincipalContext serverContext = GetDefaultPrincipalContext();
if (DoesExist(userID, serverContext))
{
throw new Exception("User already exists!");
}
UserPrincipal newUser = new UserPrincipal(serverContext, userID, userID, true);
// Get description of user from its privilege and save user if everything went OK
var description = GetDescriptionFromUserType(userType);
if (null != description)
{
newUser.Description = description;
newUser.Save();
// Add user to group so it is displayed in Control Panel
GroupPrincipal group = GroupPrincipal.FindByIdentity(serverContext, USERS_GROUP);
group.Members.Add(newUser);
group.Save();
group.Dispose();
newUser.Dispose();
serverContext.Dispose();
success = true;
}
}
catch (Exception e)
{
Log.LogError(TYPE, e.Message);
DeleteUser(userName, userType);
}
我错过了什么?
我忘了写,GetDefaultPrincipalContext() 返回新的 PrincipalContext(Context.Machine, null)...
更新:只是要提一下,我还没有为路径 C 上的新用户制作主目录和里面的所有东西:''Users''NewUser...奇怪的是(在我看来),一个不是自动制造的。
我正在写一个答案,以防有人看到这篇文章并认为上面的代码不好。实际上,代码在我尝试运行它的所有其他Windows机器上都运行良好。我不知道我的个人计算机上有什么问题,但问题绝对不在代码中......我会问其他问题来解决我的窗口问题...