HttpServerUtility.Transfer Метод
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Прекращает выполнение текущей страницы и начинает выполнение новой страницы для текущего запроса.
Перегрузки
Transfer(String) |
Для текущего запроса прекращает выполнение текущей страницы и начинает выполнение новой страницы с помощью заданного URL-пути к странице. |
Transfer(String, Boolean) |
Прекращает выполнение текущей страницы и начинает выполнение новой страницы с помощью заданного URL-пути к странице. Указывает, необходимо ли очистить коллекции QueryString и Form. |
Transfer(IHttpHandler, Boolean) |
Прекращает выполнение текущей страницы и начинает выполнение новой страницы при помощи пользовательского обработчика HTTP-данных, который содержит реализацию интерфейса IHttpHandler, и указывает, необходимо ли очистить коллекции QueryString и Form. |
Transfer(String)
Для текущего запроса прекращает выполнение текущей страницы и начинает выполнение новой страницы с помощью заданного URL-пути к странице.
public:
void Transfer(System::String ^ path);
public void Transfer (string path);
member this.Transfer : string -> unit
Public Sub Transfer (path As String)
Параметры
- path
- String
URL-путь новой выполняемой страницы на сервере.
Комментарии
Перемещенная страница должна быть другой ASPX-страницей. Например, передача на страницу ASP или ASMX недопустима. Метод Transfer сохраняет QueryString коллекции и Form коллекции.
TransferThreadAbortException вызывает Endисключение при завершении.
ASP.NET не проверяет, разрешен ли текущий пользователь просматривать ресурс, доставленный методомTransfer. Хотя ASP.NET логика авторизации и проверки подлинности выполняется до вызова исходного обработчика ресурсов, ASP.NET напрямую вызывает обработчик, указанный методомTransfer, и не выполняет повторную проверку подлинности и логику авторизации для нового ресурса. Если политика безопасности приложения требует, чтобы клиенты имели соответствующую авторизацию для доступа к ресурсу, приложение должно принудительно выполнить повторную проверку подлинности или предоставить пользовательский механизм управления доступом.
Вы можете принудительно выполнить повторную проверку подлинности с помощью Redirect метода, а не Transfer метода. Метод Redirect выполняет перенаправление на стороне клиента, в котором браузер запрашивает новый ресурс. Так как это перенаправление представляет собой новый запрос, входящий в систему, он подвергается всей логике проверки подлинности и авторизации как службы IIS (IIS), так и ASP.NET политике безопасности.
Вы можете убедиться, что у пользователя есть разрешение на просмотр ресурса, включив пользовательский метод авторизации, который использует IsInRole этот метод, прежде чем приложение вызовет Transfer этот метод.
Применяется к
Transfer(String, Boolean)
Прекращает выполнение текущей страницы и начинает выполнение новой страницы с помощью заданного URL-пути к странице. Указывает, необходимо ли очистить коллекции QueryString и Form.
public:
void Transfer(System::String ^ path, bool preserveForm);
public void Transfer (string path, bool preserveForm);
member this.Transfer : string * bool -> unit
Public Sub Transfer (path As String, preserveForm As Boolean)
Параметры
- path
- String
URL-путь новой выполняемой страницы на сервере.
- preserveForm
- Boolean
Значение true
, чтобы сохранить коллекции QueryString и Form; значение false
, чтобы очистить коллекции QueryString и Form.
Исключения
Текущий запрос страницы является обратным вызовом.
Примеры
В следующем примере выполняется новая страница в том же каталоге, что и текущая страница.
Server.Transfer("Logon.aspx", true);
Server.Transfer("Logon.aspx", true)
Комментарии
Перемещенная страница должна быть другой ASPX-страницей. Например, передача на страницу ASP или ASMX недопустима.
TransferThreadAbortException вызывает Endисключение при завершении.
Если задан preserveForm
параметр true
, целевая страница сможет получить доступ к состоянию просмотра предыдущей страницы с помощью PreviousPage свойства.
Для обеспечения безопасности необходимо сохранить enableViewStateMac
атрибут в значение true
. ASP.NET не проверяет, разрешен ли текущий пользователь просматривать ресурс, доставленный методомTransfer. Хотя ASP.NET логика авторизации и проверки подлинности выполняется до вызова исходного обработчика ресурсов, ASP.NET напрямую вызывает обработчик, указанный методомTransfer, и не выполняет повторную проверку подлинности и логику авторизации для нового ресурса. Если политика безопасности приложения требует, чтобы клиенты имели соответствующую авторизацию для доступа к ресурсу, приложение должно принудительно выполнить повторную проверку подлинности или предоставить пользовательский механизм управления доступом.
Вы можете принудительно выполнить повторную проверку подлинности с помощью Redirect метода, а не Transfer метода. Метод Redirect выполняет перенаправление на стороне клиента, в котором браузер запрашивает новый ресурс. Так как это перенаправление представляет собой новый запрос, входящий в систему, он подвергается всей логике проверки подлинности и авторизации как службы IIS (IIS), так и ASP.NET политике безопасности.
Вы можете убедиться, что у пользователя есть разрешение на просмотр ресурса, включив пользовательский метод авторизации, который использует IsInRole этот метод, прежде чем приложение вызовет Transfer этот метод.
Применяется к
Transfer(IHttpHandler, Boolean)
Прекращает выполнение текущей страницы и начинает выполнение новой страницы при помощи пользовательского обработчика HTTP-данных, который содержит реализацию интерфейса IHttpHandler, и указывает, необходимо ли очистить коллекции QueryString и Form.
public:
void Transfer(System::Web::IHttpHandler ^ handler, bool preserveForm);
public void Transfer (System.Web.IHttpHandler handler, bool preserveForm);
member this.Transfer : System.Web.IHttpHandler * bool -> unit
Public Sub Transfer (handler As IHttpHandler, preserveForm As Boolean)
Параметры
- handler
- IHttpHandler
Обработчик HTTP-данных, который содержит реализацию IHttpHandler, куда передается текущий запрос.
- preserveForm
- Boolean
Значение true
, чтобы сохранить коллекции QueryString и Form; значение false
, чтобы очистить коллекции QueryString и Form.
Исключения
Текущий запрос страницы является обратным вызовом.
Комментарии
Настраиваемые обработчики HTTP можно написать для обработки определенных предопределенных типов HTTP-запросов на любом языке, совместимом со спецификацией CLS. Исполняемый код, определенный в классах обработчика HTTP, а не обычные страницы ASP (также называемые классическими ASP) или ASP.NET страницы отвечают на эти конкретные запросы. Обработчики HTTP позволяют взаимодействовать с низкоуровневыми службами запросов и ответов веб-сервера, на котором выполняется службы IIS (IIS), и предоставляют функциональные возможности, аналогичные расширениям ISAPI, но с более простой моделью программирования.
Если задан preserveForm
параметр true
, целевая страница сможет получить доступ к состоянию просмотра предыдущей страницы с помощью PreviousPage свойства.
Для обеспечения безопасности необходимо сохранить enableViewStateMac
атрибут в значение true
. ASP.NET не проверяет, разрешен ли текущий пользователь просматривать ресурс, доставленный методомTransfer. Хотя логика авторизации и проверки подлинности ASP.NET выполняется до вызова исходного обработчика ресурсов, ASP.NET напрямую вызывает обработчик, указанный методомTransfer, и не выполняет повторную проверку подлинности и логику авторизации для нового ресурса. Если политика безопасности для приложения требует, чтобы клиенты имели соответствующую авторизацию для доступа к ресурсу, приложение должно принудительно выполнить повторную проверку подлинности или предоставить пользовательский механизм управления доступом.
Вы можете принудительно выполнить повторную проверку подлинности с помощью Redirect метода, а не Transfer метода. Метод Redirect выполняет перенаправление на стороне клиента, в котором браузер запрашивает новый ресурс. Так как это перенаправление представляет собой новый запрос, входящий в систему, он подвергается всей логике проверки подлинности и авторизации iis и политики безопасности ASP.NET.
Вы можете убедиться, что у пользователя есть разрешение на просмотр ресурса, включив пользовательский метод авторизации, который использует IsInRole этот метод, прежде чем приложение вызовет Transfer этот метод.