У меня есть приложение ASP.NET MVC 5, работающее на IIS 8.0. Пул приложений работает под пользователем домена, например. IISPoolUser. Анонимная аутентификация также использует это удостоверение.
Я дал полный контроль над папкой корневого пула (C:\inetpub\wwwroot
) и все работало нормально.
Теперь я хочу включить проверку подлинности Windows. Когда кто-то (например, WebUser) пытается получить доступ к этому приложению, он получает диалоговое окно с приглашением входа, а затем получает ошибку 401 Unathorized - «Доступ запрещен из-за неверных учетных данных». Браузер отправляет правильные заголовки аутентификации - проблема связана с доступом к каталогу.
Если я дам разрешение пользователю WebUser в папку C:\inetpub\wwwroot
, то работает нормально. Олицетворение ASP.NET отключено.
Почему IIS использует WebUser личность для доступа к каталогу? Я хочу, чтобы IIS имел доступ к этой папке как удостоверение пула приложений - IISPoolUser. Как это сделать? Я не хочу добавлять всех в права доступа к каталогу, потому что в целом это звучит неправильно - я хочу разрешить изменять этот каталог только через мое приложение IIS.
Вы должны предоставить группе права на чтение YOURDOMAIN\Domain Users
Вы не должны давать разрешение на чтение всем по очевидным причинам безопасности.
IIS использует олицетворение для доступа к папке, и если у пользователей домена нет разрешения на чтение этой папки, они продолжают получать запрос пароля, а с третьей попытки они получают ошибку 401.