Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

brissolare

[Resolvido] Erro Server.Transfer[]

Recommended Posts

Pessoal, estou tentando utilizar o server transfer para substituir o response.Redirect para que o aplicativo web nao mude o endereco na barra de endereco no browser...

 

Eu fiz o codigo para pagina de Login...e depois, fiz o codigo para a pagina de autenticacao...

O procedimento ocorre normal se o usuario não digitar o login e senha incorretamente...o Browser vai redirecionar para a pagina q eu quero e não vai mudar o endereço no navegador

 

Se o usuario errar o login ocorre 2 problemas....

 

 

1 - Não consigo recuperar de forma alguma o valor da pagina 2 para pagina 1 no server transfer....

2 - quando tento digitar outro login e senha depois que errei os parametros (primeira digitacao de usuario e senha erradas) o segundo parametro fica errado quando tendo puxar a opcao para mostar o usuario digitado, ele mostra a primeira o opcao (erro de usuario senha 1 ainda) e nao o usuario da segunda digitacao...

 

 

Pagina de Login

   protected void Page_Load(object sender, EventArgs e)
   {
       codigoErro.Text = Request.Form["errorLogin"];
       if (codigoErro.Text == "uA")
       {
           txtUsuario.Text = Request.Form["user"];
           lblMessage.Text = "* Usuário ou Senha Inválidos";
           message.Visible = true;
       }
   }
   protected void btnLogin_Click(object sender, EventArgs e)
   { Server.Transfer("userAuthentication.aspx, true); }

 

Pagina de Autenticacao


   protected void verificaUsuario(object sender, EventArgs e)
   {

       string strConexao = conexao;
       string sSql = "SELECT ul.idusuario, ul.nomeusuario, u.nome, u.tipousuario FROM usuariologin ul INNER JOIN usuario u WHERE ul.nomeusuario = '" + Request.Form["txtUsuario"] + "' AND ul.senha= PASSWORD('" + Request.Form["txtSenha"] + "') AND ul.statusu='a' AND ul.idusuario=u.idusuario";
     //  string sSql = "SELECT ul.idusuario, ul.nomeusuario, u.nome, u.tipousuario FROM usuariologin ul INNER JOIN usuario u WHERE ul.nomeusuario = '" + usuario + "' AND ul.senha= PASSWORD('" + senha + "') AND ul.statusu='a' AND ul.idusuario=u.idusuario";
       using (MySqlConnection conn = new MySqlConnection(strConexao))
       {
           MySqlDataReader r = null;
           MySqlCommand cmd = new MySqlCommand(sSql, conn);
           conn.Open();
           r = cmd.ExecuteReader();
           if (r.HasRows && r.Read())
           {

               conn.Close();
               Response.Write("<script>var myWin = window.open('startModule.aspx','sistema','toolbar=no,location=no,status=no,menubar=no,scrollbars=yes,fullscreen=yes,resizable=yes');</script>");
               Response.Write("<script>myWin.focus();</script>");
               Response.Write("<script>");
               Response.Write("window.location.href='redirect.aspx';");
               Response.Write("</script>");
           }
           else
           {
               conn.Close();
               if (Request.Form["txtUsuario"] == null || Request.Form["txtSenha"] == null)
               { Response.Redirect("Default.aspx"); }
               else
               { 
                  //esse parametro que nao consigo capturar na pagina 1
                  [b] string errorLogin = "uA";[/b]
                  //parametro 2 as vezes mostra 1 parametreo anterior do digitado (Ex: digito "Jose", quando volta aparece Jose, digito "Maria" quando volta aparece "Jose", digito novamente "Maria" ai sim aparece "Maria" quando volta para pagina de Login) 
                   string user = Request.Form["txtUsuario"];
                   Server.Transfer("Login.aspx, true);
                   // Server.Transfer("Login.aspx?errorLogin=uA&user=" + usuario);

               }
           }
       }
   }
   protected void Page_Load(object sender, EventArgs e)
   {
       if (!Page.IsPostBack)
       { verificaUsuario(sender, e); }
   }

 

Espero que tenham compreendido minha dúvida, obrigado

Abraço a todos!

Compartilhar este post


Link para o post
Compartilhar em outros sites

O segundo item não entendi muito bem, mas até onde vai meu conhecimento acho que não conseguirá resolver o primeiro problema utilizando server.transfer.

 

Coloque essa parte do login em uma i-frame caso não queira mudar o endereço.

 

Abraços...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Então...sobre o segundo intem acho que não ficou muito claro mesmo, mas resumindo, eu queria retornar a página de login com outro server.transfer() e retornado um valor de erro caso o login estivesse incorreto...no caso errorLogin="uA", mas pelo server.Transfer não consegui recuperar o valor quando retorna para a pagina de login...

Resolvi o problema criando uma seesão para guardar o erro, e recupero ela no login..se tiver em branco não mostra mensagem, caso contrário, mostra usuario e senha inválidos

Quanto ao Iframe, vou pensar na possibilidade...

 

Obrigado

Abraços

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.