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