Нужны пользователи для повторной аутентификации с NTLM - PullRequest
3 голосов
/ 24 мая 2010

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

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

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

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

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

Трей Кэрролл

Ответы [ 3 ]

4 голосов
/ 24 мая 2010

Один из способов сделать это - обработать Http-аутентификацию с использованием HTTP 401 challenge.

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

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

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

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

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

2 голосов
/ 24 мая 2010

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

0 голосов
/ 24 мая 2010

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

...