TransferRequest против передачи в ASP.Net

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

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

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

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

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


person Sujit    schedule 21.02.2013    source источник


Ответы (2)


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

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

person Community    schedule 16.05.2013

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

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

person Robert Claypool    schedule 30.03.2013