PHP NTLM: предотвращение входа в систему при сбое учетных данных - PullRequest
0 голосов
/ 05 декабря 2018

Я использую обычный (я думаю, стандартный) 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 ') {
    ....
}
...