Назад | Перейти на главную страницу

Выдача себя за другое лицо НЕ работает - сетевой ресурс

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

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

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

ПРОБЛЕМА: приложение всегда использует IUSR для подключения к этому общему ресурсу и получает сообщение «ДОСТУП ОТКЛОНЕН». Мне нужно заставить мое приложение использовать указанное выше доменное имя.

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

Спасибо!

Прежде всего, «олицетворение» - это термин, применяемый только внутри одного и того же компьютера, если ваш сетевой ресурс (или IIS, или виртуальный каталог, или MS SQL Server и т. Д.) Находится на другом компьютере, тогда это делегирование, и вы должны его настроить. между компьютерами (читайте SPN, имя участника-службы).
Ваша сетевая папка находится на том же или на другом компьютере?

Тогда это не «двойной прыжок», поскольку вы не передаете исходную идентификацию пользователя своего webapp, а используете фиксированное олицетворение в web.config.

Надеюсь, его нет в производстве? Помещение учетных данных в web.config - это ЗЛО, ЗЛО, ЗЛО, никогда не делайте этого, просто не делайте этого!

Кстати, вы можете достичь того же результата без фиксированного олицетворения в web.config, запустив свое веб-приложение в пользовательском пуле приложений под пользователем вашего домена, см. [1]. Это проще, настраиваемее и надежнее.

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

Хорошо, я начал писать:

  • Отключите «Анонимный доступ» и включите «Обычную проверку подлинности» в IIS (свойствах сайта)
    + Изменить

    <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