目前我们(我和我的公司)有一个asp.net mvc4页面。我们希望利用一个通过AD认证的登录页面。其中一个要求是在认证失败时向用户返回一些信息。
我们想要的信息可能是:
- 无效的用户名/密码
- 账户被锁定
- 密码已过期
这是一个不熟悉的领域,所以我不确定有哪些.NET库可用。到目前为止,我只找到了System.DirectoryServices,但它似乎只能返回一个bool值。
这是可能的吗?任何参考、建议或示例将不胜感激!
目前我们(我和我的公司)有一个asp.net mvc4页面。我们希望利用一个通过AD认证的登录页面。其中一个要求是在认证失败时向用户返回一些信息。
我们想要的信息可能是:
这是一个不熟悉的领域,所以我不确定有哪些.NET库可用。到目前为止,我只找到了System.DirectoryServices,但它似乎只能返回一个bool值。
这是可能的吗?任何参考、建议或示例将不胜感激!
false
,则使用静态 UserPrincipal.FindByIdentity 查找您的用户,然后查看账户是否已锁定使用 IsAccountLockedOut()。userAccountControl
属性,并检查位 0x800000
是否设置,即 PasswordExpired。这里有关于 userAccountControl 值的更多信息。try
{
SearchResult result = searcher.FindOne();
}
catch(Exception e)
{
// now what?
}
现在在异常处理中,您可以处理LDAP异常类型,这是所有LDAP错误的列表。
http://msdn.microsoft.com/en-us/library/aa746530(v=vs.85).aspx
您可以根据ADSI 错误代码来确定您所遇到的错误类型。
但是,我认为您应该给用户一个单一的通用错误提示,比如“凭证无效”,因为LDAP错误难以处理。
Cheers.!!