Подтвердить что ты не робот

TransferRequest vs Transfer в ASP.Net

Я прошел по ссылкам, упомянутым ниже,

iis форум и проблемы HttpModules & Server.Transfer/Server.TransferRequest/RewritePath. но не в состоянии уловить концепцию этих методов передачи.

Как они работают? А какой предпочтителен в другой ситуации?

Может кто-нибудь объяснить мне TransferRequest против методов передачи для передачи на стороне сервера в asp.net и его роли?

заранее спасибо

4b9b3361

Ответ 1

HttpServerUtility.Transfer Завершает выполнение текущей страницы и начинает выполнение предоставленного URL. Это в основном отображает и выполняет новую страницу ASP.NET(или служит статическому файлу), соответствующую предоставленному URL. Он делает это на месте в конвейере текущего запроса, не применяя новую конфигурацию к новому URL-адресу, или повторно запускает модули IIS для нового URL-адреса. Из-за этого, это очень быстро, но это также предотвращает множество сценариев, которые возможны с TRQ.

HttpServerUtility.TransferRequest Выполняет асинхронное выполнение предоставленного URL-адреса. Это полный запрос пользователя IIS под обложками, что позволяет ему повторно запускать весь конвейер запросов для нового запроса, как если бы он был отдельным запросом, получал правильную конфигурацию для него и запускал все обычные модули IIS, включая аутентификация, авторизация и т.д. Например, IIS будет применять правила авторизации для нового URL-адреса, в отличие от предыдущего URL-адреса.

Ответ 2

TransferRequest перезапускает весь конвейер запросов, как если бы это был отдельный запрос. Это означает, что модули IIS и ASP.NET повторно применяются; правила аутентификации и авторизации для нового URL будут соблюдены. Обратите внимание, что TransferRequest требует встроенного режима конвейера IIS 7+, и передача может быть на страницу ASP или другой ресурс, такой как файл XML.

Передача переносит выполнение с одной ASP-страницы на другую ASP-страницу на сервере. В отличие от TransferRequest, IIS и ASP.NET НЕ будут проверять, что текущий пользователь авторизован для просмотра ресурса, доставленного методом Transfer. Если вам необходимо принудительно выполнить повторную авторизацию, а интегрированный режим конвейера не является опцией, вместо метода Transfer вызовите Redirect. Перенаправление инициирует перенаправление на стороне клиента, так что новый запрос будет подвергаться всей логике аутентификации и авторизации IIS и ASP.NET.