C# 使用C进行Active Directory身份验证#

C# 使用C进行Active Directory身份验证#,c#,active-directory,ldap,C#,Active Directory,Ldap,我有一个严重的问题,根据广告认证我的用户。我可以使用PrincipalContext方式或DirectoryEntry方式,并检查登录是否成功。但这对我来说还不够。我需要知道身份验证失败的原因(例如:密码过期、帐户锁定、密码计数限制错误)。在不使用本机win32 dll的情况下,是否有办法实现这一点。顺便说一句,这可能不是一直都是一个web项目。我的最佳解决方案可能是通用的。 感谢您的帮助…您应该在异常中找到错误的原因 因此,如果使用PrincipalContext成员身份验证将失败,您将获得信

我有一个严重的问题,根据广告认证我的用户。我可以使用PrincipalContext方式或DirectoryEntry方式,并检查登录是否成功。但这对我来说还不够。我需要知道身份验证失败的原因(例如:密码过期、帐户锁定、密码计数限制错误)。在不使用本机win32 dll的情况下,是否有办法实现这一点。顺便说一句,这可能不是一直都是一个web项目。我的最佳解决方案可能是通用的。
感谢您的帮助…

您应该在异常中找到错误的原因

因此,如果使用PrincipalContext成员身份验证将失败,您将获得信息,如:

  • AccountExpirationDate(帐户是否已过期)
  • AccountLockoutTime(帐户是否已锁定)
  • 已启用(帐户是否已启用)
  • IsAccountLockedOut(帐户是否已锁定)
  • PermittedLogentimes(是否允许用户立即登录)
  • PermittedWorkstations(是否允许用户从此客户端登录)