Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
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
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
No Page_Load voce pode fazer assim:
If Session("id") = Nothing Then
Response.Redirect("PaginadeLogin.aspx")
End if
Ja tentei isso sauloreis :(
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
Uhul, cosengui
Valeeu gente :D
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...