C# C,针对active directory的身份验证
我使用System.DirectoryServices.AccountManagement命名空间中的PrincipalContext在应用程序中对Active Directory进行身份验证。我使用ValidateCredentials函数 身份验证工作正常,当我在Active Directory中重置用户密码并强制他在下次登录时更改密码时,我无法对用户进行身份验证 我试图更改身份验证的方式,我使用了LdapConnection namespace System.DirectoryServices.Protocols,身份验证工作正常,当我重置用户密码并强制用户在下次登录时更改密码时,我无法验证此用户,如果我只是重置密码,而不是强迫用户在下次登录时更改密码,我可以对用户进行身份验证 我用不同的active directory测试了相同的场景,它在所有场景中都有效C# C,针对active directory的身份验证,c#,active-directory,ldap,ldapconnection,principalcontext,C#,Active Directory,Ldap,Ldapconnection,Principalcontext,我使用System.DirectoryServices.AccountManagement命名空间中的PrincipalContext在应用程序中对Active Directory进行身份验证。我使用ValidateCredentials函数 身份验证工作正常,当我在Active Directory中重置用户密码并强制他在下次登录时更改密码时,我无法对用户进行身份验证 我试图更改身份验证的方式,我使用了LdapConnection namespace System.DirectoryServic
当用户必须在下一个登录标志中更改密码为true时,Active Directory是否可能阻止我通过代码进行身份验证 您确实回答了自己的问题,如果在active directory中设置了“下次登录时用户必须更改密码”,则用户只能从Windows UI以交互方式进行身份验证以设置新密码,而不能按照您要求的方式对其进行身份验证
如果您想让它工作,您需要在应用程序中添加功能,以便在用户大量更改其密码时进行检测,并在身份验证之前提供这样做的方法。这将需要处理过期密码以及按照您描述的方式强制更改密码的情况。谢谢您的回答,所以我的问题是,为什么它在一个active directory ant中工作不在另一个中工作,我需要在我的AD中配置什么,所以,当用户下次登录时必须更改密码设置为true时,我将能够通过代码对用户进行身份验证?