Олицетворение IIS не работает, когда пул приложений запускается с учетной записью доменаC#

Место общения программистов C#
Ответить
Anonymous
 Олицетворение IIS не работает, когда пул приложений запускается с учетной записью домена

Сообщение Anonymous »

У меня есть приложение ASP.net, работающее в среде интрасети Windows. Мне необходимо выполнить определенные обновления базы данных от имени пользователя, вошедшего в систему.

Информация об IIS/сервере:
  • IIS версии 10
  • Windows server 2019
  • Приложение веб-форм ASP.net
  • .NET 4.7
  • Аутентификация Windows включена
  • Олицетворение и анонимная аутентификация отключены
  • Пул приложений использует интегрированный конвейер
  • Пул приложений работает с учетной записью службы домена в качестве удостоверения, которая имеет права на доступ к другим ресурсам по мере необходимости.
Другие сведения:
  • Все мои строки подключения к базе данных настроены так, что 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
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»