Требуется повторная аутентификация пользователей с помощью NTLM

Я NTLM (authenication="windows" в web.config) с сайтом asp.net mvc 2.0.

Прямо сейчас, как только пользователь входит в систему, он держит его в течение нескольких недель.

Использование приложения открыто для пользователей, которые совместно используют компьютеры, использующие зарегистрированные учетные записи служб.

Мне нужно, чтобы сайт каждый раз запрашивал у каждого пользователя свои учетные данные AD, чтобы обрабатывать этих пользователей. (Действия на сайте должны быть связаны с однозначно идентифицированным пользователем.)

Спасибо за любую помощь, которую вы можете предоставить.

Трей Кэрролл


person Trey Carroll    schedule 24.05.2010    source источник
comment
Каждый пользователь входит в свою учетную запись в домене?   -  person Raj Kaimal    schedule 24.05.2010
comment
К сожалению, похоже, что хотя у пользователей есть вход в домен, они получают доступ к терминалам через общую учетную запись киоска. Это означает, что мне нужно бросить вызов каждому посетителю при первом доступе к странице, а затем позволить ему перемещаться по сайту под этими учетными данными в течение всего сеанса. На данный момент предложение перейти на аутентификацию с помощью форм звучит как хорошая рекомендация.   -  person Trey Carroll    schedule 24.05.2010


Ответы (3)


Это можно сделать, обработав процесс Http Authentication с помощью HTTP 401 challenge.

Принцип заключается в отказе от учетных данных, даже если они действительны, чтобы заставить всех пользователей (или некоторых, в зависимости от атрибутов/параметров кода AD...) повторно ввести свои учетные данные.

Вы должны отправить коды HTTP 401 в ответ, чтобы указать браузеру, что отправленные учетные данные не приняты. В зависимости от конфигурации браузера вы должны отправить от 1 до 3 ответов 401 (вы можете использовать файлы cookie для обработки счетчика), чтобы заставить браузер запрашивать у пользователя, поэтому считайте до 3.

if (mycounter < 3)
{
    Response.StatusCode = 401; 
    Response.End();
}

Схема аутентификации NTLM для HTTP

Аутентификация IIS

person JoeBilly    schedule 24.05.2010
comment
Был задан аналогичный (но не дублированный) вопрос, и я ответил более подробно: users/20290262#20290262" title="сайт iis как для интрасети, так и для анонимных пользователей"> stackoverflow.com/questions/20244860/ - person JoeBilly; 27.02.2014

Вместо этого я бы изменил приложение, чтобы использовать аутентификацию с помощью форм. Вы по-прежнему можете проверять учетные данные в AD, но вы сможете применять требования к входу в систему.

person David    schedule 24.05.2010

Можете ли вы убедиться, что они просто используют браузер, который не поддерживает NTLM автоматически? Например, когда я иду на наш сервер Sharepoint, мне нужно войти в систему с моими учетными данными домена в Firefox.

person Ryan    schedule 24.05.2010