Требуется помощь в настройке проверки подлинности IIS для веб-приложения C#, чтобы убедиться, что оно олицетворяет пользовательский доступ к NT - PullRequest
0 голосов
/ 15 января 2020

Я разработал набор кода C# с использованием VS2017, который добавит удаление пользователя в группу активных каталогов. Он хорошо работает на моей локальной машине (IIS express), где windows достаточно умен, чтобы олицетворять мой текущий доступ для входа в NT и добавил \ удаленного пользователя из группы AD.

тот же код перемещен на windows сервер 2016 (версия сервера 1607) IIS версии 10.0.14393, когда я запускаю веб-приложение, мой c# код запускает «Доступ запрещен». ошибка.

Я уже настраиваю свою модель аутентификации IIS как «Windows Аутентификация» и отключаю остальную часть метода, но все еще не работает, что идет не так и где я могу начать устранять неполадки, связанные с проблемой доступа?

enter image description here

Ответы [ 3 ]

0 голосов
/ 15 января 2020

При размещении приложения в IIS express. Ваш пул приложений выполняется под вашим логином windows.

Когда вы размещаете веб-приложение в IIS. Тогда ваш файл может быть активирован в IIS Apppool \, и файл будет доступен через вашего windows аутентифицированного пользователя. Поэтому, пожалуйста, попробуйте изменить свой идентификатор пула приложений для вашего пользователя windows.

Кроме того, вы можете попытаться изменить и идентификатор пула приложений, и useAppPoolCredential = true . enter image description here

Первая часть, которую нам нужно сделать, это выяснить, где доступ запрещен выдана ошибка. Тогда мы будем знать, в чем причина root.

Кроме того, вы можете использовать монитор процесса для отслеживания «ошибки доступа запрещен».

https://docs.microsoft.com/en-us/sysinternals/downloads/procmon

0 голосов
/ 22 января 2020

Я нашел причину, по которой IIS-сервер не олицетворяет windows доступ для входа в систему ..

По умолчанию при создании пула IIS он имеет параметр по умолчанию «ApplicationPoolIdentity»

enter image description here

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

Кому исправить это , мы можем либо (1) предоставить учетной записи компьютера IIS собственный доступ на чтение / запись к целевым сетевым ресурсам (в моем случае это был AD, такая же проблема также возникала на сервере SQL) ИЛИ (2) установить приложение пул для запуска с указанием учетной записи службы, которой принадлежит доступ к целевым сетевым ресурсам (2-й подход менее эффективен, так как требуется 1 дополнительный пароль учетной записи службы)

enter image description here

0 голосов
/ 15 января 2020

Вы хотите изменить папку с файловой системой windows? Пользователю с именем IIS необходимо разрешение на изменение этой папки. Вы можете изменить это в свойствах папки => вкладка безопасности

...