我必须让用户在 Active Directory 系统上设置标志“用户必须更改密码”时更改他的密码。
当我通过我的 AD 管理员授予 adLDAP 访问权限时,这才有效。
因此,当用户尝试登录时,我会检查属性“pwdlastset”是否具有指示用户必须更改密码的值。如果是,我将他重定向到更新密码对话框。
这个解决方案的问题是,当用户输入无效的初始密码时,我也会重定向他。因为我无法验证他。当我尝试绑定用户时,设置了“pwdlastet”属性,它总是返回一个错误“无法绑定”。
$adldap = new \adLDAP(array("base_dn" => $basedn, "account_suffix" => $accsuffix,"domain_controllers" => $dc,"admin_username" => $adminuser, "admin_password" => $adminpw));
//Get Requesting Users "pwdLastSet" Field over the Admin Account
$userToAuthInfo = $adldap->user()->info($name,"pwdlastset");
if($userToAuthInfo[0]["pwdlastset"][0] == 0)
{
//redirect user to pwd renew
}
else
{
//bind user and redirect to home
}
有谁知道我怎么能解决这个问题?我想如果存在带有 pw 的单独属性,我可以请求它并检查它是否相同。但是当我没有错的时候,我认为这样的属性是不存在的。