【问题标题】:Active Directory Authentication With C#使用 C# 进行 Active Directory 身份验证
【发布时间】:2012-10-08 23:56:47
【问题描述】:

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

【问题讨论】:

    标签: c# active-directory ldap


    【解决方案1】:

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

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

    • AccountExpirationDate(账户是否过期)
    • AccountLockoutTime(帐户是否被锁定)
    • 已启用(帐户是否已启用)
    • IsAccountLockedOut(账户是否被锁定)
    • PermittedLogonTimes(用户现在是否允许登录)
    • PermittedWorkstations(用户是否允许从此客户端登录)

    【讨论】: