Олицетворение НЕ работает - Сетевой ресурс - PullRequest
3 голосов
/ 22 августа 2010

Я создал виртуальный каталог (IIS 7.0), который указывает на общий сетевой ресурс.Этот виртуальный каталог находится в корне моего веб-приложения.

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

<identity impersonate="true" userName="<supplied username>"
password="<supplied password>" />

ПРОБЛЕМА: Приложение всегда использует IUSR для подключения к этому общему ресурсу и получает "ACCESS DENIED"Мне нужно заставить мое приложение использовать доменное имя выше.


ОБНОВЛЕНИЯ1. Во время работы procmon я вижу сообщение «FAST IO DISALLOWED» каждый раз, когда доступ запрещен.Не совсем уверен, если это связано.2. Я подозреваю, что симптомы проблемы с двойным хопом здесь.Но не знаю, как на самом деле его проверить или как обойти, не меняя аутентификацию на Kerbros.

Спасибо!

Ответы [ 5 ]

4 голосов
/ 19 октября 2010

IIS 7 по умолчанию работает в "integrated mode".
Вы больше не можете подражать там
(вы не получаете сообщение об ошибке при олицетворении, но оно просто не повышает привилегии) ​​.

Чтобы использовать олицетворение, вам нужно переключить ASP.NET app-pool вашего приложения на "classic mode".
Обратите внимание, что это также означает, что вы потеряете все функции, которые зависят от интегрированного режима.

enter image description here enter image description here

Другим возможным решением может быть создание символической ссылки, указывающей на общий ресурс smb, предоставление разрешения IUSR на символическую ссылку и предоставление операционной системе возможности обрабатывать все остальное (не знаю, работает ли это, и учитывая послужной список MSFT, я думаю, что это не так).

mklink /d  C:\inetpub\wwwroot\your_application_root\ShareName \\Server\ShareName\Directory

mklink требует Windows Vista +, то есть Windows Server 2008 +

1 голос
/ 07 декабря 2010

Предоставьте учетной записи IUSR доступ к вашей папке.Еще лучше, если ваша программа использует встроенную учетную запись ASP (как сказал Джо Гарретт) и предоставляет этот доступ к общей папке.

1 голос
/ 17 сентября 2010

Я согласен с утверждением Джо.Однако в большинстве корпоративных сред, где применяются строгие политики, невозможно предоставить учетные записи с ограниченными правами для доступа к определенным ресурсам.В этом случае лучше подойдет программная имитация: http://www.west -wind.com / weblog / posts / 1572.aspx

1 голос
/ 27 августа 2010

В приложениях ASP.NET обычно рекомендуется запускать под «учетной записью пользователя ASP.NET» без олицетворения. Идея заключается в том, что эта учетная запись является учетной записью с ограниченными правами, которая может причинить небольшой ущерб, если по какой-либо причине машина будет взломана.

(Вот ссылка на статью, которая должна вам помочь).

http://west -wind.com / блог / сообщений / 2153.aspx

0 голосов
/ 18 ноября 2010

Попробуйте отключить анонимный доступ. Использование аутентификации Windows, если вы не заставляете пользователя войти (добавив deny = "?" В ваш web.config), заставит IIS выдавать себя за использование настроенной учетной записи.

...