[英]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.