简体   繁体   English

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

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

Hi i want to create a system user in window server 2003 active directory for which i use following C# code , 嗨,我想在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() });
            }

this code makes user when i run this application locally on visualy studio web engine but when i deploy this application on iis on window server 2003 this will give exception 当我在visualy studio Web引擎上本地运行此应用程序时,此代码使用户受益,但是当我在窗口服务器2003上的iis上部署此应用程序时,将产生异常

Exception: 例外:

General Access Denied Error

kindly help me what im doing wrong which permission is required to create user in window server and how we give this perssion. 请帮助我在做错什么,在窗口服务器中创建用户需要哪些权限,以及我们如何赋予这种权限。 thanks. 谢谢。

Look at System.DirectoryServices.AccountManagement namespace. 查看System.DirectoryServices.AccountManagement命名空间。 Utilizing classes from it you can do this in such way: 利用其中的类,您可以通过以下方式进行操作:

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();
    }
}

Also, you may configure impersonation on your application and skip all parameters in the PrincipalContext constructor exception the first one if this functionality allowed for administrators only. 此外,如果此功能仅允许管理员使用,则可以在应用程序上配置模拟,并跳过PrincipalContext构造函数中的所有参数(第一个除外)。

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

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