我有一个需要帮助的问题。
我将LDAP与PHP结合使用来对用户进行身份验证,还检查用户密码是否标记为已过期。如果用户的密码尚未过期,或者管理员已勾选该框以强制重置密码,则所有操作都可以正常进行。但是,当密码通过组策略过期时,我遇到了一个问题。
为了做到这一点,以便当用户密码被标记为过期时,我仍然可以对用户进行身份验证,我需要将pwdlastset值更改为-1,然后再返回到最初的状态。但是,只要密码过期而不是更改pwdlastset值,就会抛出异常。
例外:
0x50 (Other (e.g., implementation specific) error; 00000057: SysErr: DSID-031A1202, problem 22 (Invalid argument), data 0 ): updating: CN=Steve,OU=Developer Groups,DC=external,DC=domain,DC=local in
有人可以为我确认我是否正确,以为密码一旦通过策略过期就无法更改此值?
如果我无法更改此值,是否可以解决?
谢谢
最佳答案
仅系统可以将pwdLastSet属性修改为0或-1以外的任何值。如果您指定0,则密码立即失效。然后,当用户更改密码时,系统会将当前日期/时间分配给pwdLastSet属性。
值-1对应于64位属性2 ^ 63-1中允许的最大整数。此值取反0。它使密码未过期。当用户下次登录时,系统会将pwdLastSet属性设置为与当前日期/时间相对应的值。
关于active-directory - LDAP pwdlastset无法更改而不会显示错误,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/18615958/