PHP NTLM:凭据失败时阻止登录表单

时间:2018-12-05 08:59:20

标签: php ntlm

我正在使用普通的(我认为是标准的)PHP NTLM:

$headers = apache_request_headers();
if (!isset($headers['Authorization'])) {
    header('HTTP/1.1 401 Unauthorized');
    header('WWW-Authenticate: NTLM');
    exit;
}

$auth = $headers['Authorization'];
if (substr($auth,0,5) == 'NTLM ') {
    ....
}

我注意到,如果用户登录到他的Windows域,我的脚本将被吊销3次(检测到NTLM凭据)。但是,如果NTLM失败,浏览器将显示登录表单。

现在,我不需要此登录表单。我需要检测NTLM凭据是否失败,而不是显示登录表单,而是要重定向到其他页面(例如,对不起,您不是域用户)。

如果我将代码更改为此,即使具有有效NTLM凭据的用户也将被重定向:

$headers = apache_request_headers();
if (!isset($headers['Authorization'])) {
    redirect to other page
}

$auth = $headers['Authorization'];
if (substr($auth,0,5) == 'NTLM ') {
    ....
}

0 个答案:

没有答案