Ir para conteúdo

POWERED BY:

Arquivado

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

Lívia Rodrigues

[Resolvido] Encerrar sessão (pagina privada) VB.NET

Recommended Posts

Galera, eu tenho uma variavel de sessao session("id") que guarda o id do usuaro que se loga na pagina inicial.

Ao se logar ele é direcionado para uma outra pagina onde estao dados particulares.

 

Para pegar o id e redirecionar eu fiz da seguinte forma:

strSQL = "select nome, sobrenome, id, tipo from usuarios where email='" + email + "' and senha='" + Senha + "'"
       Dim myCommand As New MySqlCommand()
       myCommand.Connection = conexaoMySQL
       myCommand.CommandText = strSQL

       'Iniciar Query
       myAdapter.SelectCommand = myCommand
       Dim myData As MySqlDataReader

       myData = myCommand.ExecuteReader()

       If myData.HasRows = 0 Then
           Label1.Visible = True
           Label1.Text = "Usuário ou Senha Inválidos"
           myData.Close()
       Else

           While myData.Read()

               Session("nome") = myData.Item(0)
               Session("sobrenome") = myData.Item(1)
               Session("id") = myData.Item(2)
               Session("tipo") = myData.Item(3)
           End While
           If Session("tipo") = "1" Then


               Dim url As String = "area_do_profissional.aspx"
               Response.Write("<script>" & vbCrLf)
               Response.Write("top.location.replace('" & url & "');" & vbCrLf)
               Response.Write("</script>")

               myData.Close() 

 

 

Apos logado, ao clicar no botao sair eu usei:

Session("id")=""

E dai redireciono para a inicial.

 

eu precisava criar uma condição para que se a variavel de sessao estiver vazia, redirecionar o usuario para uma pagina de login.

 

usei um if no page load para resolver o problema. Mas quando eu tento entrar na pagina direto pelo endereço url ele entra do mesmo jeito. (O que nao deveria acontecer)

Alguem sabe como posso fazer isso?

 

Obrigada

Compartilhar este post


Link para o post
Compartilhar em outros sites

Esta não é a forma correta de se controlar a autenticação no asp.net.

Também trabalho com sessão, mas utilizo os recursos do web.config para determinar se esta logado ou não.

 

http://www.macoratti.net/aspn_fbs1.htm

 

Abraços...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Valeeeu o/

me ajudou demais.

Mas por exemplo, eu tenho três tipos de usuários: Clientes, Profissionais, e Administradores

Cada um deles tem sua própria área privada ( Três paginas diferentes, com funcionalidades diferentes, etc).

Eu redireciono cada um usando um if, se o tipo de usuário for 1,2 ou 3 eu direciono para sua respectiva área.

 

Como faço isso usando esse método?

Obrigada

Compartilhar este post


Link para o post
Compartilhar em outros sites

Você pode colocar mais de 1 grupo de usuário no "authorization"

 

<authorization>
  <allow users="nome dos usuários separados por vírgulas"
         roles="nome dos grupos de usuários separados por vírgulas "
         verbs="nome dos métodos HTTP de envio de dados separados por vírgulas."/>

  <deny users="nome dos usuários separados por vírgulas"
         roles="nome dos grupos de usuários separados por vírgulas "
         verbs="nome dos métodos HTTP de envio de dados separados por vírgulas."/>

</authorization>

 

E se optar por manter a validação de login do jeito que está, quando deslogar não atribua um valor "" para sua sessão.

 

Utilize:

 Session.Abandon 

 

de uma olhada:

http://www.linhadecodigo.com.br/artigo/681/aspnet-configurando-a-seguranca-na-sua-aplicacao.aspx

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.