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

时间:2012-10-05 10:49:38

标签: c# active-directory ldap

我的用户对AD进行身份验证时遇到了严重问题。我可以使用PrincipalContext方式或DirectoryEntry方式检查登录是否成功。但这对我的情况来说还不够。我需要知道验证失败的原因(例如:密码过期,帐户锁定,密码计数错误)。无论如何在没有使用原生win32 dll的情况下实现这一点。顺便说一下,这可能不是一个Web项目。我的最佳解决方案可能是通用解决方案。 谢谢你的帮助...

1 个答案:

答案 0 :(得分:1)

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

通过使用PrincipalContext成员,如果身份验证失败,您将获得相关信息:

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