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 этот метод.

Применяется к