如何使创建的本地窗口用户能够从 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...奇怪的是(在我看来),一个不是自动制造的。

如何使创建的本地窗口用户能够从 C# 登录到他的帐户

我正在写一个答案,以防有人看到这篇文章并认为上面的代码不好。实际上,代码在我尝试运行它的所有其他Windows机器上都运行良好。我不知道我的个人计算机上有什么问题,但问题绝对不在代码中......我会问其他问题来解决我的窗口问题...