需要用到AD操作,在网上找了个ADHelper,随便用下,创建帐号的时候代码如下,运行到
ADHelper.EnableUser(commonName)的时候,:
DirectoryEntry entry = GetDirectoryObject();
![](/Images/OutliningIndicators/None.gif)
DirectoryEntry subEntry = entry.Children.Find(ldapDN);
![](/Images/OutliningIndicators/None.gif)
DirectoryEntry deUser = subEntry.Children.Add("CN=" + commonName, "user");
![](/Images/OutliningIndicators/None.gif)
deUser.Properties["sAMAccountName"].Value = sAMAccountName;
![](/Images/OutliningIndicators/None.gif)
deUser.CommitChanges();
![](/Images/OutliningIndicators/None.gif)
ADHelper.EnableUser(commonName);
![](/Images/OutliningIndicators/None.gif)
ADHelper.SetPassword(commonName, password);
![](/Images/OutliningIndicators/None.gif)
deUser.Close();
![](/Images/OutliningIndicators/None.gif)
return deUser;
居然报异常:
该服务器不愿意处理该请求。 (异常来自 HRESULT:0x80072035),呵呵,还挺人性化的,居然不愿意
System.DirectoryServices.DirectoryServicesCOMException was unhandled
Message="该服务器不愿意处理该请求。 (异常来自 HRESULT:0x80072035)"
Source="System.DirectoryServices"
ErrorCode=-2147016651
ExtendedError=1325
ExtendedErrorMessage="0000052D: SvcErr: DSID-031A0FC0, problem 5003 (WILL_NOT_PERFORM), data 0\n"
StackTrace:
在 System.DirectoryServices.DirectoryEntry.CommitChanges()
在 ConsoleApplication3.ADHelper.EnableUser(DirectoryEntry de) 位置 E:\Visual Studio 2005\Projects\ConsoleApplication3\ConsoleApplication3\ADHelper.cs:行号 1168
在 ConsoleApplication3.ADHelper.EnableUser(String commonName) 位置 E:\Visual Studio 2005\Projects\ConsoleApplication3\ConsoleApplication3\ADHelper.cs:行号 1146
在 ConsoleApplication3.ADHelper.CreateNewUser(String ldapDN, String commonName, String sAMAccountName, String password) 位置 E:\Visual Studio 2005\Projects\ConsoleApplication3\ConsoleApplication3\ADHelper.cs:行号 812
在 ConsoleApplication3.ADHelper.CreateNewUser(String commonName, String sAMAccountName, String password) 位置 E:\Visual Studio 2005\Projects\ConsoleApplication3\ConsoleApplication3\ADHelper.cs:行号 842
在 ConsoleApplication3.Program.Main(String[] args) 位置 E:\Visual Studio 2005\Projects\ConsoleApplication3\ConsoleApplication3\Program.cs:行号 21
在 System.AppDomain.nExecuteAssembly(Assembly assembly, String[] args)
在 Microsoft.VisualStudio.HostingProcess.HostProc.RunUsersAssembly()
在 System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)
在 System.Threading.ThreadHelper.ThreadStart()
![](/Images/OutliningIndicators/None.gif)
找了半天,弄不清楚原因,最后把
ADHelper.SetPassword(commonName, password);放在
ADHelper.EnableUser(commonName);前面,程序就可以通过了,哈哈,无语