Это идентификаторы пользователей, которые мой веб-сайт сообщает мне, что он использует:
Зарегистрирован: NT AUTHORITY \ NETWORK SERVICE (вообще не может записывать файлы)
и
Не вошел в систему: WSW32 \ IUSR_77 (Может записывать файлы в любую папку)
У меня есть веб-сайт ASP.NET 4.0 на веб-сервере IIS7 с общим хостом, работающим в интегрированном режиме с 32поддержка двухбитных приложений и MSSQL 2008. Использование классического режима не вариант, так как мне нужно защитить некоторые статические файлы, и я использую маршрутизацию.
В моем файле web.config я установил следующее:
<system.webServer>
<modules runAllManagedModulesForAllRequests="true" />
</system.webServer>
Моя хостинговая компания говорит, что олицетворение включено по умолчанию на уровне компьютера, поэтому я не могу это изменить.
Я попросил их поддержки, и они отослали меня к этой статье: http://www.codinghub.net/2010/08/differences-between-integrated-mode-and.html
Ссылаясь на эту часть:
Различные идентификаторы Windows в проверке подлинности с помощью форм
Когда проверка подлинности с помощью форм используется приложением и разрешен анонимный доступ, вИдентификация в Tegrated Mode отличается от идентификации в Classic mode следующими способами:
* ServerVariables["LOGON_USER"] is filled.
* Request.LogognUserIdentity uses the credentials of the [NT AUTHORITY\NETWORK SERVICE] account instead of the [NT AUTHORITY\INTERNET USER] account.
Это происходит потому, что аутентификация выполняется за один этап в интегрированном режиме.И наоборот, в классическом режиме проверка подлинности сначала выполняется с IIS 7.0 с использованием анонимного доступа, а затем с ASP.NET с использованием проверки подлинности с помощью форм.Таким образом, результатом проверки подлинности всегда является один пользователь - пользователь проверки подлинности с помощью форм.AUTH_USER / LOGON_USER возвращает этого же пользователя, поскольку учетные данные пользователя для проверки подлинности с помощью форм синхронизируются между IIS 7.0 и ASP.NET.
Побочным эффектом является то, что LOGON_USER, HttpRequest.LogonUserIdentity и олицетворение больше не могут получить доступ к учетным данным анонимного пользователя.что IIS 7.0 мог бы аутентифицироваться в классическом режиме.
Как настроить мой веб-сайт, чтобы он мог использовать правильную идентификацию с соответствующими разрешениями?
Я искал все ответы относительно этой конкретной проблемы, но пока не нашел ни одного ...
Надеюсь, вы поможете!
[ Bump ]