使用UserPrincipal类更改用户密码时出现AccessDenied异常。
我正在通过Windows Authentication (domain user)登录到 Asp.Net 应用程序。如果我尝试更改其他用户的密码,则会收到拒绝访问异常。如果我对已登录的用户执行相同操作,则一切正常 - 我可以更改密码。
我想,如果我将使用PrincipalContext获取UserPrincipal对象,我将做任何我的 'Principal - domain\adminAD ' 在 AD 中具有特权的事情。
方法体:
public bool SetPassword(string userName, string password)
{
var saved = false;
var ldapDomainName = "domain";
var ldapUsersOU = "OU=TEST,DC=domain,DC=com";
var ldapLogin = "domain\adminAD";
var ldapPassword = "password";
try
{
using (var principalContext = new PrincipalContext(
ContextType.Domain,
ldapDomainName,
ldapUsersOU,
ContextOptions.Signing | ContextOptions.Sealing | ContextOptions.Negotiate,
ldapLogin,
ldapPassword))
{
userPrincipal = UserPrincipal.FindByIdentity(principalContext, IdentityType.SamAccountName, userName);
userPrincipal.SetPassword(password);
userPrincipal.Save(principalContext);
saved = true;
}
}
catch (Exception ex)
{
// Log exception
}
return saved;
}
我已经搜索过答案,我知道类似主题有很多答案。但他们都没有解释我的问题,我猜。