HttpServerUtility.Transfer Метод
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Завершает выполнение текущей страницы и запускает выполнение новой страницы для текущего запроса.
Перегрузки
| Имя | Описание |
|---|---|
| Transfer(String) |
Для текущего запроса завершает выполнение текущей страницы и запускает выполнение новой страницы с помощью указанного URL-пути страницы. |
| Transfer(String, Boolean) |
Завершает выполнение текущей страницы и запускает выполнение новой страницы с помощью указанного URL-пути страницы. Указывает, следует ли очищать QueryString коллекции и Form коллекции. |
| Transfer(IHttpHandler, Boolean) |
Завершает выполнение текущей страницы и запускает выполнение нового запроса с помощью пользовательского обработчика HTTP, реализующего IHttpHandler интерфейс, и указывает, следует ли очистить коллекции и Form удалить QueryString их. |
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 коллекции.
Transfer вызовы End, которые вызывают ThreadAbortException исключение при завершении.
ASP.NET не проверяет, разрешен ли текущий пользователь просматривать ресурс, предоставленный методом Transfer . Хотя ASP.NET логика авторизации и проверки подлинности выполняется до вызова исходного обработчика ресурсов, ASP.NET напрямую вызывает обработчик, указанный Transfer методом, и не выполняет повторную проверку подлинности и логику авторизации для нового ресурса. Если политика безопасности приложения требует, чтобы клиенты имели соответствующую авторизацию для доступа к ресурсу, приложение должно принудительно выполнить повторную проверку подлинности или предоставить пользовательский механизм управления доступом.
Вы можете принудительно выполнить повторную проверку подлинности с помощью Redirect метода вместо Transfer метода. Метод Redirect выполняет перенаправление на стороне клиента, в котором браузер запрашивает новый ресурс. Так как это новый запрос, входящий в систему, он подвергается всей логике проверки подлинности и авторизации как служб 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 для очистки коллекций и Form коллекцийQueryString.
Исключения
Текущий запрос страницы — это обратный вызов.
Примеры
В следующем примере выполняется новая страница в том же каталоге, что и текущая страница.
Server.Transfer("Logon.aspx", true);
Server.Transfer("Logon.aspx", true)
Комментарии
Страница, перенесенная на нее, должна быть другой .aspx страницы. Например, перенос на страницу .asp или .asmx недействителен.
Transfer вызовы End, которые вызывают ThreadAbortException исключение при завершении.
Если для параметра trueзадано preserveForm значение, целевая страница сможет получить доступ к состоянию представления предыдущей страницы с помощью PreviousPage свойства.
В целях безопасности следует сохранить для атрибута enableViewStateMac значение true. ASP.NET не проверяет, разрешен ли текущий пользователь просматривать ресурс, предоставленный методом Transfer . Хотя ASP.NET логика авторизации и проверки подлинности выполняется до вызова исходного обработчика ресурсов, ASP.NET напрямую вызывает обработчик, указанный Transfer методом, и не выполняет повторную проверку подлинности и логику авторизации для нового ресурса. Если политика безопасности приложения требует, чтобы клиенты имели соответствующую авторизацию для доступа к ресурсу, приложение должно принудительно выполнить повторную проверку подлинности или предоставить пользовательский механизм управления доступом.
Вы можете принудительно выполнить повторную проверку подлинности с помощью Redirect метода вместо Transfer метода. Метод Redirect выполняет перенаправление на стороне клиента, в котором браузер запрашивает новый ресурс. Так как это новый запрос, входящий в систему, он подвергается всей логике проверки подлинности и авторизации как служб IIS, так и ASP.NET политике безопасности.
Вы можете убедиться, что у пользователя есть разрешение на просмотр ресурса, включив настраиваемый метод авторизации, который использует IsInRole метод, прежде чем приложение вызывает Transfer метод.
Применяется к
Transfer(IHttpHandler, Boolean)
Завершает выполнение текущей страницы и запускает выполнение нового запроса с помощью пользовательского обработчика HTTP, реализующего IHttpHandler интерфейс, и указывает, следует ли очистить коллекции и Form удалить QueryString их.
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 для очистки коллекций и Form коллекцийQueryString.
Исключения
Текущий запрос страницы — это обратный вызов.
Комментарии
Пользовательские обработчики HTTP можно написать для обработки определенных предопределенных типов HTTP-запросов на любом языке, совместимом с спецификацией CLS. Исполняемый код, определенный в классах обработчика HTTP, вместо обычных страниц ASP (также известных как классический ASP) или ASP.NET страниц отвечает на эти конкретные запросы. Обработчики HTTP позволяют взаимодействовать с низкоуровневыми службами запросов и ответов веб-сервера, выполняющего службы IIS, и предоставляют функциональные возможности, аналогичные расширениям ISAPI, но с более простой моделью программирования.
Если для параметра trueзадано preserveForm значение, целевая страница сможет получить доступ к состоянию представления предыдущей страницы с помощью PreviousPage свойства.
В целях безопасности следует сохранить для атрибута enableViewStateMac значение true. ASP.NET не проверяет, разрешен ли текущий пользователь просматривать ресурс, предоставленный методом Transfer . Хотя ASP.NET логика авторизации и проверки подлинности выполняется до вызова исходного обработчика ресурсов, ASP.NET напрямую вызывает обработчик, указанный Transfer методом, и не выполняет повторную проверку подлинности и логику авторизации для нового ресурса. Если политика безопасности для приложения требует, чтобы клиенты имели соответствующую авторизацию для доступа к ресурсу, приложение должно принудительно выполнить повторную проверку подлинности или предоставить пользовательский механизм управления доступом.
Вы можете принудительно выполнить повторную проверку подлинности с помощью Redirect метода вместо Transfer метода. Метод Redirect выполняет перенаправление на стороне клиента, в котором браузер запрашивает новый ресурс. Так как это новый запрос, входящий в систему, он подвергается всей логике проверки подлинности и авторизации iis и ASP.NET политике безопасности.
Вы можете убедиться, что у пользователя есть разрешение на просмотр ресурса, включив настраиваемый метод авторизации, который использует IsInRole метод, прежде чем приложение вызывает Transfer метод.