C# 使用UserPrincipal更改AD用户帐户属性
我正在尝试使用UserPrincipal更改Active Directory中的用户帐户属性C# 使用UserPrincipal更改AD用户帐户属性,c#,active-directory,impersonation,userprincipal,C#,Active Directory,Impersonation,Userprincipal,我正在尝试使用UserPrincipal更改Active Directory中的用户帐户属性 PrincipalContext ctx = new PrincipalContext(ContextType.Domain, "domain.tld", "ADUser", "ADPassword"); UserPrincipal user = UserPrincipal.FindByIdentity(ctx, IdentityType.SamAccountName, this.SAM
PrincipalContext ctx = new PrincipalContext(ContextType.Domain, "domain.tld", "ADUser", "ADPassword");
UserPrincipal user = UserPrincipal.FindByIdentity(ctx, IdentityType.SamAccountName, this.SAMAccount);
if (user != null)
{
user.Enabled = false;
user.Save();
}
我已经了解到,我们必须使用对Active Directory具有写访问权限的特殊帐户,而不是当前登录用户。因此,我创建了一个特殊类,通过使用特殊帐户进行模拟。但我仍然有这个机会
System.UnauthorizedAccessException:拒绝一般访问错误
在用户保存时(ctx);线路
我怎样才能达到这个要求?谢谢。您的特殊用户被授予了哪些权限?它需要能够在有问题的用户上写入
userAccountControl
。我不会先模拟帐户!通过先通过ad传递值获得访问权限
对于真正的问题,请查看错误:
要以其他用户的身份访问Principal,请使用该用户的凭据定义PrincipalContext,并在获取UserPrincipal时使用该PrincipalContext
PrincipalContext ctx = new PrincipalContext(ContextType.Domain, "domain.tld", "ADUser", "ADPassword");
UserPrincipal user = UserPrincipal.FindByIdentity(ctx, IdentityType.SamAccountName, this.SAMAccount);
if (user != null)
{
user.Enabled = false;
user.Save();
}
如果您仍然收到UnauthorizedAccess异常,可能是因为您指定的帐户无权在Active Directory/LDS中的用户对象上写入userAccountControl属性 如何知道您指定的帐户是否无权在Active Directory/LDS中的用户对象上写入userAccountControl属性。?