фона:Double Hop с сайта ASP.Net и NHibernate
сайт ASP.Net MVC. Хостинг на IIS7, интранет.
База данных: SQL Server. Доступ через NHibernate.
В строке соединения доступ установлен на Integrated Security: SSPI
.
(Права доступа к БД Active-каталогов на основе.)
Короче говоря, это типичная ситуация двойного прыжка,
, где мне нужно, чтобы передать учетные данные клиента для IIS, и с IIS для SQL Server.
Проблема:
Проблема представляет собой желтый экран смерти с ошибкой:
Login failed for user 'MyDomain\UserThatRunsAppPool'.
Что я пытался делать, чтобы решить эту проблему:
- Настройка аутентификации для включения только Аутентификация Windows
и ASP.NET Олицетворение - Настройка проверки подлинности Windows
Provider
вNegotiate:Kerberos
(После отключения проверки подлинности в режиме ядра) - Убедившись, что делегация UserThatRunsAppPool установлен на:
'Trust the user for delegation to any service (Kerberos only)
' в Active Directory - Перемещение NHibernate SessionFactory от
Application_BeginRequest()
доSession_Start()
Насколько успешно я был с моими попытками устранить проблему:
Вовсе нет.
EDIT:
Я также попытался установить делегирование сервера IIS к 'Trust the user for delegation to any service (Kerberos only)
' (в Active Directory).
Если он получил логин для «MyDomain \ UserThatRunsAppPool», это означает, что вызов не олицетворяет HTTP-вызывающего. Веселье с делегацией запустит только * после *, что, как только он успешно исправит олицетворение. –