Как вручную аутентифицировать пользователя в Windows аутентификации asp.net - PullRequest
1 голос
/ 06 июля 2011

У меня есть приложение для интрасети с аутентификацией Windows.Все отлично работаетОднако для некоторых важных операций (это может быть одобрение проверки AP или оценка ученика) мне нужно получить идентификатор пользователя и пароль.Цель состоит в том, чтобы не допустить того, чтобы кто-то шел к терминалу, оставленному без присмотра, и, как правило, не отказывался от него.Тривиально с аутентификацией форм - но я не могу понять, как это сделать с аутентификацией Windows.

Я не думаю, что это имеет значение, но это приложение MVC и аутентификация выполняется с Active Directory

Ответы [ 2 ]

1 голос
/ 06 июля 2011

Как правило, серверное приложение должно выдать код состояния HTTP 401, чтобы сообщить клиенту информацию для аутентификации. Однако в случае аутентификации Windows после аутентификации пользователя токен кэшируется клиентской системой или браузером и впоследствии используется при необходимости. Таким образом, в вашем случае, даже если вы введете 401, клиент снова отправит тот же токен, поэтому ваша основная проблема злоупотребления необслуживаемым терминалом не будет решена (так как пользователь уже вошел в систему).

Одним из способов может быть имитация проверки подлинности на основе форм из приложения - т. Е. При выполнении конфиденциальных операций снова запросите у пользователя пароль для Windows (обратите внимание, что у вас уже будет имя (идентификатор) пользователя, если вы используете проверку подлинности Windows) а затем повторно подтвердите этот пароль с помощью API-интерфейса активного каталога (или API-интерфейса Windows для входа в систему).

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

0 голосов
/ 06 июля 2011

В моем приложении webforms у меня есть одна страница, разрешающая только Windows Auth и никакие другие, а затем получить имя пользователя (так как они уже выполнили процедуру 401 auth через браузер), я получаю их имя пользователя как таким образом:

string username = Request.ServerVariables["LOGON_USER"];

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

Или вы пытаетесь вручную выполнить процесс аутентификации 401?

как вручную аутентифицировать пользователя в asp.net windows аутентификация

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...