繁体   English   中英

如何在C#asp.net中的Windows Server 2003上创建系统用户?

[英]How to create system user on window server 2003 in C# asp.net?

嗨,我想在Windows Server 2003活动目录中创建一个系统用户,为此我使用以下C#代码,

 DirectoryEntry AD = new DirectoryEntry("WinNT://"+Environment.MachineName+",computer");

            DirectoryEntry NewUser = AD.Children.Add(username, "user");

            NewUser.Invoke("SetPassword", new object[] { password });

            NewUser.Invoke("Put", new object[] { "Description", "Test User from .NET"});

            NewUser.CommitChanges();

            DirectoryEntry grp;

            grp = AD.Children.Find("Guests", "group");

            if (grp != null)
            {
                grp.Invoke("Add", new object[] { NewUser.Path.ToString() });
            }

当我在visualy studio Web引擎上本地运行此应用程序时,此代码使用户受益,但是当我在窗口服务器2003上的iis上部署此应用程序时,将产生异常

例外:

General Access Denied Error

请帮助我在做错什么,在窗口服务器中创建用户需要哪些权限,以及我们如何赋予这种权限。 谢谢。

查看System.DirectoryServices.AccountManagement命名空间。 利用其中的类,您可以通过以下方式进行操作:

using (var context = new PrincipalContext(ContextType.Machine, "MachineName", "AdminUserName", "AdminPassword"))
{
    UserPrincipal user = new UserPrincipal(context, username, password, true);
    user.Description = "Test User from .NET";
    user.Save();

    var guestGroup = GroupPrincipal.FindByIdentity(context, "Guests");
    if (guestGroup != null)
    {
        guestGroup.Members.Add(user);
        guestGroup.Save();
    }
}

此外,如果此功能仅允许管理员使用,则可以在应用程序上配置模拟,并跳过PrincipalContext构造函数中的所有参数(第一个除外)。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM