当前位置: 首页 > 编程语言 > C#

在.NET中创建ActiveDirectory用户(C#)分享

时间:2023-04-10 15:44:04 C#

在.NET中创建ActiveDirectory用户(C#)我需要在ActiveDirectory中创建一个新用户。我找到了几个例子如下:usingSystem;使用System.DirectoryServices;namespacetest{classProgram{staticvoidMain(string[]args){try{stringpath="LDAP://OU=x,DC=y,DC=com";字符串用户名=“johndoe”;使用(DirectoryEntryou=newDirectoryEntry(path)){DirectoryEntryuser=ou.Children.Add("CN="+username,"user");user.Properties["sAMAccountName"].Add(用户名);ou.CommitChanges();}}catch(Exceptionexc){Console.WriteLine(exc.Message);}}}}当我运行这段代码时,我没有收到任何错误,但它不会创建新用户。我在其下运行测试的帐户有足够的权限在目标组织单位中创建用户。我缺少什么(可能是用户对象的某些必需属性)?任何想法为什么代码没有给出异常?编辑以下对我有用:intNORMAL_ACCOUNT=0x200;intPWD_NOTREQD=0x20;DirectoryEntryuser=ou.Children.Add("CN="+username,"user");user.Properties["sAMAccountName"].Value=username;user.Properties[“userAccountControl”].Value=NORMAL_ACCOUNT|PWD_NOTREQD;用户.CommitChanges();所以实际上有几个问题:必须对用户调用CommitChanges(感谢Rob)密码策略阻止用户创建(感谢Marc)我认为你在错误的DirectoryEntry上调用CommitChanges。在MSDN文档(http://msdn.microsoft.com/en-us/library/system.directoryservices.directoryentries.add.aspx)中,它声明以下内容(强调由我添加)您必须调用新条目CommitChanges使创作永久化的方法。调用此方法时,可以在新条目上设置强制属性值。对于在调用CommitChanges方法之前需要设置哪些属性,每个提供程序都有不同的要求。如果不满足这些要求,提供程序可能会抛出异常。请咨询您的提供商以确定在提交更改之前必须设置哪些属性。因此,如果您将代码更改为user.CommitChanges()它应该可以工作,并且如果您需要设置的属性不仅仅是帐户名,那么您应该会得到一个例外。由于您当前正在对未更改的OU调用CommitChanges(),因此不会出现异常。假设你的OU路径OU=x,DC=y,DC=com确实存在-它应该工作:-)要检查的事情:否则你可能会得到几个samAccountNames-这不会工作.....渣检查以下以上代码为C#学习教程:CreateActiveDirectoryusersin.NET(C#)分享全部内容。如果对你有用,需要进一步了解C#学习教程,希望大家多多关注——DirectoryEntryouEntry=newDirectoryEntry("LDAP://OU=TestOU,DC=TestDomain,DC=local");for(inti=3;i本文收集自网络,不代表立场,如涉及侵权,请点击右边联系管理员删除。如需转载,请注明出处: