Это продолжение предыдущего сообщения о невозможности олицетворения текущего пользователя Windows, вошедшего в систему. Было много хороших предложений, но предыдущая тема становилась грязной, поэтому я перезагружаюсь с этим постом. Надеюсь, с текущим состоянием, описанным ниже, будет очевидно, в чем проблема. Это хорошо проработанный путь, поэтому я должен верить, что все, что мне не хватает, это небольшой шаг настройки.
ПРОБЛЕМА. Мне нужно, чтобы ASP.NET выдавал себя за текущего пользователя, вошедшего в систему. Когда я работаю под IIS 7.5, это не работает. IIS Express работает нормально, но я считаю, что это потому, что сеанс отладки выполняется под моим идентификатором пользователя.
Я использую Environment.Username
, чтобы определить, кто этот пользователь. Было предположение, что это свойство всегда возвращает имя пользователя, вошедшего в систему, но из моего тестирования оно возвращает выдавшего себя за пользователя из IIS.
Например, если мой web.config имеет…
<identity impersonate="true" />
Когда я работаю под IIS 7.5 с этой настройкой, Environment.Username
возвращает IUSR . Я считаю, что это учетная запись анонимного пользователя IIS.
Если я изменю web.config на…
<identity impersonate="true" userName="domain\jlivermore" password="mypassword" />
… тогда Environment.Username возвращает jlivemore. Однако мне нужно, чтобы он возвращал jlivermore без явной установки его в web.config.
Вот мои настройки IIS…
Правила авторизации .NET
Аутентификация
Один вопрос: если я отключу анонимную аутентификацию, мне будет предложено войти на сайт. Я думал, что если вы вошли в систему с учетной записью Active Directory в домене, эта проблема не появится? Даже если я введу свое имя пользователя / пароль в это приглашение, я все равно не получу олицетворение.
Основные настройки