我在LDAP身份验证上遇到了一个奇怪的行为,我需要这个用他们的AD凭据来验证用户,这就是我所拥有的:
session_start();
$adServer = "MY IP";
$ldapconn = ldap_connect($adServer) or $this->msg = "Could not connect to LDAP server.";
$ldaprdn = "DOMAIN\\" . $_POST["username"];
$ldapbind = ldap_bind($ldapconn, $ldaprdn, $_POST["password"]);
if ($ldapbind) {
//$msg = "Successfully Authenticated";
$_SESSION['loggedin'] = 1;
$_SESSION['username'] = $username;
header("Location: ../main.php");
} else {
header("Location: ../index.php?login_failed=1");
}
这是我得到的不同行为:
>无用户名/无密码=经过身份验证(BAD)
>用户名/无密码=已验证(BAD)
>不正确的用户名/密码(两个字段都已给出)=未经过身份验证
>正确的用户名/密码(两个字段都已给出)=已验证
我发现这很难集中,如果没有使用密码字段,所有用户都会被验证.但是,如果我使用密码字段,它只会使用正确的凭据对用户进行身份验证.
我在这里做错了什么,还是应该开始唠叨IT人员?
如果觉得《php ldap ad 登录验证 PHP中的LDAP身份验证 – 无需密码即可进行身份验证》对你有帮助,请点赞、收藏,并留下你的观点哦!