Получение IIS для олицетворения пользователя Windows на сервере SQL в среде интрасети
Я занимаюсь разработкой интранет-сайта с использованием C# и ASP.NET MVC. У меня есть SQL Server на одном компьютере, а IIS работает на другом компьютере. Я хотел бы, чтобы пользователь посещал сайт интрасети, и без запроса пользователя Internet Explorer отправляет учетные данные Windows пользователя в IIS, а затем они передаются на сервер SQL Server, что означает, что сервер SQL Server может видеть доступ пользователя к базе данных.
Я знаю о проблеме двойного прыжка Kerberos, и именно это я пытаюсь обойти. В настоящее время я могу получить IE для передачи учетных данных Windows в IIS и проверки подлинности. Я просто не могу заставить IIS передать эти учетные данные в SQL Server, и вместо этого запрос в настоящее время выполняется под идентификатором пула приложений, для которого установлена учетная запись службы домена "htu\srv-htu-iis".
Моя установка выглядит следующим образом:
Web.Config
<system.web>
<authentication mode="Windows" />
<authorization>
<deny users="?" />
</authorization>
<identity impersonate="true" />
</system.web>
<system.webServer>
<validation validateIntegratedModeConfiguration="false" />
</system.webServer>
Строка подключения
connection string="data source=hturesbsqlp01;initial catalog=R2_Dev;integrated security=True;MultipleActiveResultSets=True;App=EntityFramework""
Настройки аутентификации IIS
Anonymous Authentication = Disabled
ASP.NET Impersonation = Enabled
Forms Authentication = Disabled
Windows Authentication = Enabled
Настройки пула приложений IIS
Managed Pipeline = Integrated
Identity = htu\srv-htu-iis (domain service account)
Настройки Active Directory
Учетная запись службы домена htu \ srv-htu-iis имеет имя участника службы, связывающее наш сайт с учетной записью.
Активный каталог имеет
Allow Delagation to any service
SQL Server работает под собственной учетной записью службы домена SQL.
тесты
Я выполнил следующие тесты кода:
System.Web.HttpContext.Current.User.Identity.Name
это правильно возвращает учетные данные Windows пользователя, получающего доступ к сайту
System.Security.Principal.WindowsIdentity.GetCurrent().Name
вернуть учетную запись службы домена "htu \ srv-htu-iis", под которой выполняется удостоверение пула приложений.
Кто-нибудь может подсказать, куда я могу пойти не так?
1 ответ
Хорошо всем, кто посетит этот вопрос в будущем. Я решил это, перезапустив службу IIS... дох! Кажется, мои настройки были в порядке, просто нужен полный перезапуск сервиса!