我们在独立服务器上运行了一个Employee Self Service应用程序。 该应用程序的一个功能是“忘记密码”,因此员工可以重置自己的密码。 它适用于所有服务器,但不适用于Windows Server 2008 R2。下面是我们使用的代码片段:
User.Invoke("SetPassword", new object[] {"#12345Abc"});
User.CommitChanges();
看起来根本无法让它在Windows Server 2008 R2中运行。 如果有人有效,请帮助。
由于
答案 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();
}