Desenvolvimento - ASP. NET

ASP.NET - Redirecionando páginas

Neste artigo vou falar sobre como podemos fazer o redirecionamento de páginas em ASP.NET usando Response.Redirect e Server.Transfer.

por José Carlos Macoratti



Neste artigo vou falar sobre como podemos fazer o redirecionamento de páginas em ASP.NET usando Response.Redirect e Server.Transfer.

Como exemplo vou usar uma página simples de Login onde o usuário deverá informar o nome e a senha. Se o nome e a senha estiverem cadastrados irei redirecionar a o usuário para a página Bemvindo.aspx caso contrário retornarei para a página de Login : Login.aspx.

Os dados estão na tabela Usuarios no banco de dados Acesso.mdb que esta na pasta dados dentro da pasta Admin que é o local onde estão as páginas Login.aspx e Bemvindo.aspx

O código completo da pagina Login.aspx é dado a seguir:

Funciona assim :

Quando o usuário informar o nome e a senha e clicar no botão Login o script será executado. Nele ocorre o seguinte n:

Talvez esta não seja a melhor forma de você criar uma estrutura de segurança mas eu usei este exemplo apenas para falar de dois comandos usados aqui:

  • Server.Transfer("Bemvindo.aspx")
  • Response.Redirect("Login.aspx") ou Response.Redirect("http://www.macoratti.net/Login.aspx")

O que eles fazem e qual a diferença ?

Response.Redirect simplesmente envia uma mensagem ao Navegador dizendo a ele para mover-se para outra página.

Server.Transfer também envia o usuário para outra página mas ele tem algumas particularidades.

Ao transferir o usuário para outra página usando Server.Transfer o servidor conserva os recursos já usados. O invés de dizer simplesmente para o Browser redirecionar para outra página ele apenas altera o "foco" no servidor e transfere a requisição. Isto significa que você não esta criando novas requisições e sua aplicação fica mais rápida.

Mas nem tudo são flores ao usar Server.Transfer , pois o processo de transferência pode operar somente em sites que estão rodando no servidor. Você não pode usar Server.Transfer para enviar o usuário para uma página externa ao servidor. Somente Response.Redirect pode fazer isto.

Além disto Server.Transfer mantém a URL original no Browser o que pode ajudar para entrada de dados mas causar confusão na depuração.

Server.Transfer possui um segundo parâmetro : preserveForm. Se você definí-lo como True assim : Server.Transfer("Login.aspx", True) a consulta existente e qualquer variável de formulário ficará disponível para a página para a qual você esta fazendo a transferência.

Então finalizando podemos concluir que Response.Redirect faz o Browser visitar outra página e Server.Transfer ajuda a reduzir as requisições ao servidor ,mantém a URL , permite a transferência de consultas e variáveis de formulário.

Nota: Server.Execute executa uma página e retorna o resultado.

Até o próximo artigo ASP.NET ...

José Carlos Macoratti

José Carlos Macoratti