如何重置Active Directory的密码

时间:2015-01-20 04:45:54

标签: c# .net active-directory comexception

有谁知道如何在C#中重置Active Directory的密码?

我编写了以下代码来重置Active Directory中的密码:

   [WebMethod]
   public static string ResetPassword(string test)
   {
       string userDn = "CN=Joe Bloggs,OU=Test Accounts,OU=ST IT,OU=Departments,OU=Internal,OU=Divisions,DC=thegroup,DC=com,DC=au";
       string password = "!qwer12345";

       DirectoryEntry uEntry = new DirectoryEntry(userDn);
       uEntry.Invoke("SetPassword", new object[] { password });
       uEntry.Properties["LockOutTime"].Value = 0; //unlock account

       uEntry.Close();

       return "hello";
   }

当我运行代码时,当它到达行uEntry.Invoke("SetPassword", new object[] { password });

时会显示错误

enter image description here

enter image description here

有谁知道造成这个问题的原因以及我如何解决这个问题?

1 个答案:

答案 0 :(得分:1)

This似乎解释了问题的原因 - 您需要提供管理员凭据(用户名和密码)。

  

我认为这是一个安全问题 - 当你在本地运行时   直接在Windows上,它是在您自己的帐户下执行的   很可能有足够的权限来创建用户。

     

当您通过Web服务执行此操作时,您将其作为“匿名”运行   ASP.NET用户默认情况下很可能没有权限   这样做。

     

因此,当您绑定到AD时,您将需要提供凭据(用户名   和密码),足够特权,以便能够创建   用户。您可以在“new DirectoryEntry()”构造函数中执行此操作 -   检查它是否过载。