IIS 7 - если возникает ошибка 403.4, событие BeginRequest не запускается - PullRequest
0 голосов
/ 16 октября 2010

Я тестирую свой собственный модуль http и одновременно изучаю интегрированный конвейер IIS.В моем модуле я зарегистрировал события: RQ_BEGIN_REQUEST, RQ_END_REQUEST, RQ_AUTHENTICATE_REQUEST, RQ_AUTHORIZE_REQUEST

На моем веб-сайте одна страница требует SSL, другие - нет.Когда запрашиваются другие страницы http: //, запускаются все 4 события.Когда эта страница запрашивается с использованием http: //, а не https://,, сервер возвращает «403.4 Страница, к которой вы пытаетесь получить доступ, защищена с помощью Secure Sockets Layer (SSL)».Однако в этом случае запускается только событие EndRequest.Почему это?Если я использую https://,, тогда все в порядке.

1 Ответ

0 голосов
/ 20 октября 2010

Я провел эксперимент и нашел ответ на свой вопрос.

Когда страница запроса клиента, для которой требуется SSL, с использованием не-SSL (http://) метода, IIS Web Core устанавливает код ошибки ответа 403.4 в своем обработчике событий BeginRequest. События BeginRequest для других модулей запроса Http подавляются,инициируются только события LogRequest и EndRequest.

Таким образом, для захвата всех таких клиентских запросов и перенаправления http: // запросов к https://, необходим глобальный модуль вместо модуля запроса Http. В глобальном коде модуля зарегистрируйтесьобработчик события для GL_PRE_BEGIN_REQUEST.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...