C#,针对活动目录的身份验证

时间:2014-06-02 08:23:48

标签: c# active-directory ldap ldapconnection principalcontext

我正在使用PrincipalContext(来自System.DirectoryServices.AccountManagement命名空间)在我的应用程序中针对Active Directory进行身份验证(我正在使用ValidateCredentials函数)。

验证工作正常,当我在Active Directory中重置用户密码并强制他在下次登录时更改密码时,我无法验证用户身份。

我尝试更改我正在进行身份验证的方式,我使用LdapConnection(名称空间System.DirectoryServices.Protocols),身份验证工作正常,当我重置用户密码并强制用户更改密码时下次登录时,我无法对此用户进行身份验证,如果我只是重置密码而不是强制用户在下次登录时更改密码,我可以对用户进行身份验证。

我使用不同的活动目录测试了相同的场景,并且它适用于所有场景。

当用户必须在下一个登录标志中更改密码时,Active Directory是否可能阻止我通过代码进行身份验证?

1 个答案:

答案 0 :(得分:0)

您真的回答了自己的问题,当用户必须在下次登录时更改密码"如果设置在活动目录中,则用户只能从Windows UI以交互方式进行身份验证,以便设置新密码,无法以您需要的方式对其进行身份验证。

如果您想让它正常工作,您需要为应用程序添加功能,以便在用户更改密码时检测到,并在验证之前提供相应的方法。这将需要处理过期的密码以及以您描述的方式强制更改密码的实例。