IIS все еще получает доступ к ресурсам через удостоверение пула, а не от имени пользователя - PullRequest
3 голосов
/ 19 декабря 2011

У меня все в порядке!

На Server 2003 у меня есть приложение INTRANET, настроенное на использование ОСНОВНОЙ АУТЕНТИФИКАЦИИ, и пул приложений с выделенной учетной записью.

В web.configЯ указываю

   <authentication mode="Windows" />
   <identity impersonate="true"/>

В представлении (MVC 3):

<p>Environment.UserName (authentication): @Environment.UserName</p>
<p>User.Identity.Name (asp.net account): @User.Identity.Name</p>

Это показывает, что мою учетную запись домена подобрали, как и ожидалось (я должен войти в приложение черездиалог).Отлично!

НО ЖДУ!Когда приложение обращается к файловой системе или серверу sql (другой компьютер), оно не делает это через мою учетную запись домена, а скорее через учетную запись пула.Я вижу вход в SQL через профилировщик.Я также проверил это через разрешения файловой системы.Если я настрою пул для использования сетевых служб, я не смогу создать локальный файл, даже через учетную запись домена, которую я использую, имеет разрешения и может делать это в интерактивном режиме.Если я предоставлю разрешение учетной записи NS на файлы, это будет работать.Так что я точно знаю, что хотя представление подтверждает, что я олицетворяю, запросы ресурсов используют не эту учетную запись, а пул.

Если я отключаю олицетворение, я вижу идентификатор пула вкак и ожидалось.

Из того, что я прочитал, я должен иметь возможность использовать обычную аутентификацию для доступа к удаленному серверу sql, верно?Не говоря уже о локальном диске.Я просто не понимаю!

Буду признателен за любые предложения.

Спасибо!

1 Ответ

3 голосов
/ 19 декабря 2011

олицетворение заканчивается с IIS. чтобы продолжить передачу учетных данных пользователя на 2-й удаленный сервер, необходимо включить делегирование между веб-сервером и файловым сервером. Это настройка битового флага между компьютерами в Active Directory.

...