在Windows Server 2008 R2上重置密码

时间:2010-12-23 18:41:17

标签: c# .net windows windows-server-2008-r2

我们在独立服务器上运行了一个Employee Self Service应用程序。 该应用程序的一个功能是“忘记密码”,因此员工可以重置自己的密码。 它适用于所有服务器,但不适用于Windows Server 2008 R2。下面是我们使用的代码片段:

User.Invoke("SetPassword", new object[] {"#12345Abc"});
User.CommitChanges();

看起来根本无法让它在Windows Server 2008 R2中运行。 如果有人有效,请帮助。

由于

2 个答案:

答案 0 :(得分:1)

尝试UserPrincipal.SetPassword。它是更高级别的抽象,因此更智能。它将知道要调用的低级函数。调用方式对我来说似乎太脆弱了。

答案 1 :(得分:1)

我们也试过这个:

PrincipalContext context = new PrincipalContext(ContextType.Machine, "servername");

UserPrincipal up = UserPrincipal.FindByIdentity(context, IdentityType.SamAccountName, "username");
if (up != null)
{
    up.SetPassword("newpassword");
    // We got the same access denied exception here
    up.Save();
}