Назад | Перейти на главную страницу

Веб-сайт Windows Server 2008 R2: проблема с олицетворением

У меня есть веб-сайт, который использует выдачу себя за другое лицо. Когда мой анонимный пользователь настроен на IUSR, а идентификатор пула приложений установлен на NetworkService, некоторые страницы не отображаются. Я получаю пустую страницу без сообщения об ошибке.

Если я помещаю анонимного пользователя как ApplicationPoolIdentity и помещаю идентификатор пула в localSystem, он работает нормально.

Если я поставлю анонимного пользователя администратору, он будет работать нормально.

Я знаю, что у меня проблема с безопасностью, но я не знаю, в какой папке мне нужно установить политику безопасности, чтобы все работало нормально.

Я предоставил доступ на чтение / запись к папке веб-сайта для IUSR, IIS_IUSRS, сетевой службы и группы моего вымышленного пользователя.

Кто-то понял, что случилось с моего разрешения?

Я тоже нашел эту статью, но безуспешно .. http://blogs.iis.net/webtopics/archive/2009/03/13/changes-to-application-pool-identities-in-iis-7-5-beta.aspx

Я нашел проблему.

http://forums.asp.net/p/1459236/3386036.aspx

Есть проблема

Microsoft подтвердила, что это ошибка в .Net Framework 2.0, 3.0 и 3.5. Ниже приводится цитата из электронного письма, которое я получил от них:

"

Проблема, которую мы наблюдаем, действительно является ошибкой, и ниже приводится ее объяснение.

Резюме «Объект Params представляет собой коллекцию объектов QueryString, Form, Cookies и ServerVariables. Когда объект params создается впервые, он добавляет каждый из этих объектов в свою коллекцию в методе FillInParamsCollection. Первым сохраняемым объектом является объект Объект QueryString. Если этот объект еще не создан, а в нашем случае это не так, конструктор этого объекта пытается заполнить объект QueryString. Во время этого процесса он получает кодировку, вызывая метод GetEncodingFromHeaders () в HttpRequest. Этот метод специально ищет User-Agent, который начинается с «UP». В этом случае он пытается получить заголовок «x-up-devcap-post-charset» из коллекции Headers. Однако, поскольку коллекция Headers еще не инициализирована он также выполняет свою процедуру инициализации. Одна из вещей, которые выполняет его процедура инициализации, устанавливает коллекцию Params в значение NULL. Это то, что вызывает AV, когда метод FillInParamsCollection пытается инициализировать nex t после объекта QueryString. "

Обходной путь Предварительно инициализируйте объект QueryString, чтобы избежать проблемы. Просто откройте Request.QueryString (). Нам не нужно с этим ничего делать, просто получите к нему доступ.

образец:

           Object o = context.Request.QueryString;
           NameValueCollection parameters = context.Request.Params; 

"

Решение заключалось в прямом использовании в коде Request["Value"] и нет Request.Params["Value"]

Пожалуйста, обратитесь к статье Создание безопасных приложений ASP.NET: аутентификация, авторизация и безопасная связь.

Это даст вам лучшее представление об удостоверении, используемом вашим приложением ASP.NET при олицетворении. Дайте необходимое разрешение и все будет хорошо.

HTH