HttpServerUtility.Transfer Método
Definição
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
Encerra a execução da página atual e inicia a execução de uma nova página para a solicitação atual.
Sobrecargas
Transfer(String) |
Para a solicitação atual, finaliza a execução da página atual e inicia a execução de uma nova página usando o caminho de URL especificado da página. |
Transfer(String, Boolean) |
Finaliza a execução da página atual e inicia a execução de uma nova página usando o caminho especificado da URL da página. Especifica se é necessário limpar as coleções QueryString e Form. |
Transfer(IHttpHandler, Boolean) |
Finaliza a execução da página atual e inicia a execução de uma nova solicitação usando um manipulador HTTP personalizado, que implementa a interface IHttpHandler e especifica se as coleções QueryString e Form devem ser apagadas. |
Transfer(String)
Para a solicitação atual, finaliza a execução da página atual e inicia a execução de uma nova página usando o caminho de URL especificado da página.
public:
void Transfer(System::String ^ path);
public void Transfer (string path);
member this.Transfer : string -> unit
Public Sub Transfer (path As String)
Parâmetros
- path
- String
O caminho de URL da nova página no servidor de execução.
Comentários
A página transferida deve ser outra página .aspx. Por exemplo, uma transferência para uma página .asp ou .asmx não é válida. O Transfer método preserva o e Form as QueryString coleções.
Transfer chamadas End, que gera uma ThreadAbortException exceção após a conclusão.
ASP.NET não verifica se o usuário atual está autorizado a exibir o recurso entregue pelo Transfer método. Embora a lógica de autorização e autenticação ASP.NET seja executada antes do manipulador de recursos original ser chamado, ASP.NET chama diretamente o manipulador indicado pelo Transfer método e não executa novamente a lógica de autenticação e autorização para o novo recurso. Se a política de segurança do aplicativo exigir que os clientes tenham autorização apropriada para acessar o recurso, o aplicativo deverá forçar a reautorização ou fornecer um mecanismo personalizado de controle de acesso.
Você pode forçar a reautorização usando o Redirect método em vez do Transfer método. O Redirect método executa um redirecionamento do lado do cliente no qual o navegador solicita o novo recurso. Como esse redirecionamento é uma nova solicitação que entra no sistema, ele é submetido a toda a lógica de autenticação e autorização do IIS (Serviços de Informações da Internet) e ASP.NET política de segurança.
Você pode verificar se o usuário tem permissão para exibir o recurso incorporando um método de autorização personalizado que usa o IsInRole método antes que o aplicativo chame o Transfer método.
Aplica-se a
Transfer(String, Boolean)
Finaliza a execução da página atual e inicia a execução de uma nova página usando o caminho especificado da URL da página. Especifica se é necessário limpar as coleções QueryString e 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)
Parâmetros
- path
- String
O caminho de URL da nova página no servidor de execução.
- preserveForm
- Boolean
true
para preservar as coleções QueryString e Form; false
para limpar as coleções QueryString e Form.
Exceções
A solicitação de página atual é um retorno de chamada.
Exemplos
O exemplo a seguir executa uma nova página no mesmo diretório que a página atual.
Server.Transfer("Logon.aspx", true);
Server.Transfer("Logon.aspx", true)
Comentários
A página transferida deve ser outra página .aspx. Por exemplo, uma transferência para uma página .asp ou .asmx não é válida.
Transfer chamadas End, que gera uma ThreadAbortException exceção após a conclusão.
Se você definir o preserveForm
parâmetro como true
, a página de destino poderá acessar o estado de exibição da página anterior usando a PreviousPage propriedade.
Para fins de segurança, você deve manter o enableViewStateMac
atributo definido como true
. ASP.NET não verifica se o usuário atual está autorizado a exibir o recurso entregue pelo Transfer método. Embora a lógica de autorização e autenticação ASP.NET seja executada antes do manipulador de recursos original ser chamado, ASP.NET chama diretamente o manipulador indicado pelo Transfer método e não executa novamente a lógica de autenticação e autorização para o novo recurso. Se a política de segurança do aplicativo exigir que os clientes tenham autorização apropriada para acessar o recurso, o aplicativo deverá forçar a reautorização ou fornecer um mecanismo personalizado de controle de acesso.
Você pode forçar a reautorização usando o Redirect método em vez do Transfer método. O Redirect método executa um redirecionamento do lado do cliente no qual o navegador solicita o novo recurso. Como esse redirecionamento é uma nova solicitação que entra no sistema, ele é submetido a toda a lógica de autenticação e autorização do IIS (Serviços de Informações da Internet) e ASP.NET política de segurança.
Você pode verificar se o usuário tem permissão para exibir o recurso incorporando um método de autorização personalizado que usa o IsInRole método antes que o aplicativo chame o Transfer método.
Aplica-se a
Transfer(IHttpHandler, Boolean)
Finaliza a execução da página atual e inicia a execução de uma nova solicitação usando um manipulador HTTP personalizado, que implementa a interface IHttpHandler e especifica se as coleções QueryString e Form devem ser apagadas.
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)
Parâmetros
- handler
- IHttpHandler
O manipulador HTTP que implementa o IHttpHandler para o qual a solicitação atual será transferida.
- preserveForm
- Boolean
true
para preservar as coleções QueryString e Form; false
para limpar as coleções QueryString e Form.
Exceções
A solicitação de página atual é um retorno de chamada.
Comentários
Você pode escrever manipuladores HTTP personalizados para processar tipos específicos e predefinidos de solicitações HTTP em qualquer idioma que esteja em conformidade com a CLS (Common Language Specification). Código executável que é definido nas classes de manipulador HTTP em vez de páginas ASP convencionais (também conhecidas como ASP clássicas) ou páginas ASP.NET responde a essas solicitações específicas. Os manipuladores HTTP permitem interagir com os serviços de solicitação e resposta de baixo nível de um servidor Web que está executando Serviços de Informações da Internet (IIS) e fornecem funcionalidade semelhante às extensões ISAPI, mas com um modelo de programação mais simples.
Se você definir o preserveForm
parâmetro como true
, a página de destino poderá acessar o estado de exibição da página anterior usando a PreviousPage propriedade.
Para fins de segurança, você deve manter o enableViewStateMac
atributo definido como true
. ASP.NET não verifica se o usuário atual está autorizado a exibir o recurso entregue pelo Transfer método. Embora a lógica de autorização e autenticação ASP.NET seja executada antes do manipulador de recursos original ser chamado, ASP.NET chama diretamente o manipulador indicado pelo Transfer método e não executa novamente a lógica de autenticação e autorização para o novo recurso. Se a política de segurança do aplicativo exigir que os clientes tenham autorização apropriada para acessar o recurso, o aplicativo deverá forçar a reautorização ou fornecer um mecanismo de controle de acesso personalizado.
Você pode forçar a reautorização usando o Redirect método em vez do Transfer método. O Redirect método executa um redirecionamento do lado do cliente no qual o navegador solicita o novo recurso. Como esse redirecionamento é uma nova solicitação que entra no sistema, ele é submetido a toda a lógica de autenticação e autorização do IIS e da política de segurança ASP.NET.
Você pode verificar se o usuário tem permissão para exibir o recurso incorporando um método de autorização personalizado que usa o IsInRole método antes que o aplicativo chame o Transfer método.