Информация об IIS/сервере:
- IIS версии 10
- Windows server 2019
- Приложение веб-форм ASP.net
- .NET 4.7
- Аутентификация Windows включена
- Олицетворение и анонимная аутентификация отключены
- Пул приложений использует интегрированный конвейер < /li>
Пул приложений работает с учетной записью службы домена в качестве удостоверения, которая имеет права на доступ к другим ресурсам по мере необходимости.
- Все строки подключения к моей базе данных настроены так, что integrated Security=true
- в активном каталоге настроено ограниченное делегирование между веб-сервером и сервером SQL, что позволяет MSSQLSvc: 1433 и MSSQLSvc (нет порта)
Учетная запись службы домена является членом группы локальных администраторов на веб-сервере (только в целях тестирования)
Код: Выделить всё
var windowsIdentity = User.Identity as WindowsIdentity;
WindowsIdentity.RunImpersonated(windowsIdentity.AccessToken, () =>
{
// perform database update
});
Код: Выделить всё
System.Data.SqlClient.SqlException: Login failed for user 'NT AUTHORITY\ANONYMOUS LOGON'
Если я изменю идентификацию пула приложений, чтобы использовать apppoolidentity (идентификация пула приложений по умолчанию) подражание работает должным образом.
Почему это олицетворение работает с AppPoolIdentity, но не с моей учетной записью службы домена?
Подробнее здесь: https://stackoverflow.com/questions/596 ... in-account