如何区分“用户下次登录必须更改密码”和“密码错误”用例?

Posted

技术标签:

【中文标题】如何区分“用户下次登录必须更改密码”和“密码错误”用例?【英文标题】:How to distinguish between “user must change password at next logon” and “wrong password” use cases? 【发布时间】:2013-06-25 14:20:06 【问题描述】:

我使用 UnboundID 对 Active Directory 进行身份验证。 当我使用错误的密码进行身份验证并且用户配置为“用户下次登录时必须更改密码”时,我有相同的错误代码。 “密码错误”异常:

LDAPException(resultCode=49 (invalid credentials), errorMessage='80090308: LdapErr: DSID-0C090334, comment: AcceptSecurityContext error, data 52e, vece

“用户下次登录时必须更改密码”异常:

LDAPException(resultCode=49 (invalid credentials), errorMessage='80090308: LdapErr: DSID-0C090334, comment: AcceptSecurityContext error, data 773, vece

唯一的区别是异常消息中字数据的值。 我不想依赖消息。

【问题讨论】:

【参考方案1】:

快速浏览此页面:

http://ldapwiki.willeke.com/wiki/Common%20Active%20Directory%20Bind%20Errors

表明: data 52e = 当用户名有效但密码/凭证无效时返回。

数据 773 = 登录 LDAP pwdLastSet 之前必须更改条目的密码:值 0 表示管理员需要更改密码 - MUST_CHANGE_PASSWD

-吉姆

【讨论】:

感谢您的回答 (+1)!我们有子代码的 RFC 吗?还是与供应商有关? novell.com/coolsolutions/tip/18470.html 另外,如何以更传统的方式获取子代码?我不想解析异常消息。 这是所有供应商特定的。 AFIK,如果您需要该信息,则必须进行解析。如果你找到更好的方法,请指教。

以上是关于如何区分“用户下次登录必须更改密码”和“密码错误”用例?的主要内容,如果未能解决你的问题,请参考以下文章

用户登录测试总结

疑难杂症,逐个下药

为啥svn安装成功却不能下载东西,总是让输入多次用户名才、跟密码,最后提示错误了呢?

补交作业5

如何使用 auth0 自定义 api 发出用户名密码请求,出现错误“不支持的授权类型:密码”错误

在PHP中验证密码和确认密码