Олицетворение НЕ работает - Сетевой ресурс

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

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

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

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

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

Спасибо!

1 ответ

Прежде всего, "олицетворение" - это термин, применяемый только внутри той же машины, если ваша сетевая папка (или IIS, или виртуальный каталог, или MS SQL Server и т. Д.) Находится на другом компьютере, то это делегирование, и вы должны его настроить between computers (read SPN, Service Principal Name).
Are your network share on the same or on the different computer?

Then, it is not "double hop" since you do not pass-through original identity of your webapp user but use fixed impersonation in web.config.

I hope it is not in production? This, putting credentials in web.config, is EVIL, EVIL, EVIL, do not ever do this, just don't!

BTW, you can reach the same result without fixed impersonation in web.config by running your webapp in custom application pool under your domain user, cf. [1]. This is more easy, configurable and reliable.

I could have tried to write you instructions for all possible cases since the exact context is blurred in your post but it would have ended up in unreadable dozens-page article.

OK, I started writing:

  • Disable "Anonymous access" and enable "Basic authentication" in IIS (properties of website)
    + Изменить

    <authentication mode="None" />  
    

    в

    <authentication mode="Windows" />   
    

    в web.config

    Отключите "Использовать простой общий доступ к файлам" в Проводнике Windows -> Инструменты меню ---> Параметры папки... ---> Вид вкладки

    Дайте разрешения для имени пользователя на сетевом ресурсе

    Убедитесь, что NTLM включен на всех участвующих компьютерах

Пожалуйста, прочитайте и следуйте инструкциям в [2].
Я не смог найти описание того же качества для IIS7/W2006, но я твердо уверен, что то, что вам нужно, не изменилось.
Если у вас возникнут дополнительные вопросы или проблемы, опубликуйте более конкретные вопросы.


----- Цитируется:

[1]
Как: создать учетную запись службы для приложения ASP.NET 2.0
http://msdn.microsoft.com/en-us/library/ms998297.aspx

[2]
Как: использовать олицетворение и делегирование в ASP.NET 2.0
http://msdn.microsoft.com/en-us/library/ff647404.aspx

Другие вопросы по тегам