DaniloTec 0 Denunciar post Postado Maio 4, 2009 Bom dia a todos. Estou fazendo um sistema de login utilizando session pra controlar as permissões dos usuários no acesso das páginas. Criei uma classe chamada sessao com os métodos carregaSessao e verificaSessao. public void carregaSessao(string strLogin, string strSenha) { // if (strLogin == "login" && strSenha == "123456"){ Session["bitLogado"] = true; Session["intPermissao"] = 1; }else{ Session["bitLogado"] = true; Session["intPermissao"] = 2; } } public void verificaPermissao() { if ((int)Session["intPermissao"] != 1) { Response.Redirect("default.aspx"); } }Coloquei um login e senha fixos somente para fins de testes, só para ver o comportamento da aplicação.No botão entrar eu coloque a seguinte função: protected void btnEntrar_Click(object sender, EventArgs e) { sessao obj = new sessao(); obj.carregaSessao(txtLogin.Text, txtSenha.Text); if ((int)Session["intPermissao"] == 1) { Response.Redirect("adm.aspx"); } else { Response.Redirect("colaborador.aspx"); } }Se retornar a session["intPermissao"] == 1 é adm, senão é colaborador. Até aí, tudo bem. Se eu rodar essa aplicação funciona direitinho, ele me retorna se é adm ou não e me redireciona pra devida página.O problema é que se eu rodar a aplicação e acessar a página adm.aspx (pra ver se está validando a session) ele me retorna o seguinte erro: Object reference not set to an instance of an object. na linha: if ((int)Session["intPermissao"] != 1)Na página adm.aspx tem o seguinte código no onload: protected void Page_Load(object sender, EventArgs e) { sessao obj = new sessao(); obj.verificaPermissao(); }Sabem me dizer o que acontece?Estou começando a programar agora em .NET, até o momento eu só programei em ASP. Montei essa lógica de login pensando em ASP e não sei se esta é a melhor forma de se fazer em .NET. Vlw! Compartilhar este post Link para o post Compartilhar em outros sites
quintelab 91 Denunciar post Postado Maio 4, 2009 Este erro ocorre por que no momento que esta tentando acessar o valor da Session intPermissao ela ainda não existe. Abraços... Compartilhar este post Link para o post Compartilhar em outros sites
Oenning 0 Denunciar post Postado Maio 5, 2009 É isso que o quintelab disse, faz uma outra verificação, se intPermissao for null é porque é a primeira vez que ele entra no sistema, ou seja, ainda não fez login. Compartilhar este post Link para o post Compartilhar em outros sites
DaniloTec 0 Denunciar post Postado Maio 5, 2009 Boa. Certinho. Só acrescentei a verificação de null dentro do if. Vlw gente! Compartilhar este post Link para o post Compartilhar em outros sites