System.DirectoryServices.AccountManagement引导自己
本文关键字:自己 AccountManagement DirectoryServices System | 更新日期: 2023-09-27 17:49:30
我正试图在System.DirectoryServices.AccountManagement
命名空间上引导自己,以解决我遇到的另一个问题。在net中,我想在广告中切换"ChangePasswordOnNextLogon"标志,这个命名空间使它看起来很容易。
因此,我尝试使用使用AdMembershipProvider
登录时使用的相同用户和密码使用它。
PrincipalContext oPrincipalContext =
new PrincipalContext(ContextType.Domain, "10.1.XXX.XXX", "DC=XXXXXXXX,DC=ORG",
ContextOptions.SimpleBind, AUserThatWorks, APasswordThatWorks);
UserPrincipal oUserPrincipal =
UserPrincipal.FindByIdentity(oPrincipalContext, AdUserName);
// we need to see if they can authenticate before changing password,so we have to turn this off manually. - EWB
oUserPrincipal.RefreshExpiredPassword();
bool b = oPrincipalContext.ValidateCredentials( AdUserName, AdPassword );
if (!b)
oUserPrincipal.ExpirePasswordNow();
return b;
但是当它到达FindByIdentity
时,我得到一个"坏用户或密码"错误。
由于用户在其他地方工作,我认为它必须是获得主要上下文的其他参数之一。有人能给我点提示吗?我试着把LDAP放在URL的前面,但是连接失败了。我一头雾水。
谢谢,
Cal -
试着简化你的PrincipalContext行:
PrincipalContext oPrincipalContext = new PrincipalContext(ContextType.Domain, "XXXXXX.org", AUserThatWorks, PasswordThatWorks);
假设您的域名是XXXXXXX.org。你也可以试着把你的域名放在你的用户名前面:"XXXXXX.org'username"。