Ir para conteúdo

Arquivado

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

Dagma Collela

Autenticação Por Session

Recommended Posts

Boa Tarde Galera. Sou novo mundo da programação, então acho natural ter muitas duvidas, vamos a o que interessa.

Galera andei dano umas pesquisadas no forum, para resolver meu problema, achei algo mas pra mim ainda esta meio cru, http://forum.imasters.com.br/topic/395570-resolvidoc-verificar-usurio-logado/

Um mebro do Imaster, recomenda o site para um que tinha quase mesma duvida que eu, é esse site aqui.

http://www.bufaloinfo.com.br/artigos/artigo1510.asp Meu problema é o seguinte fiz tudo que manda nesse site ai, pra validar se o usuário esta logado ou não. Mas meu problema é o seguinte, o usuario loga blz, quando e redirecionado para a pagina certa ai tudo bem, o problema é que quando eu tendo ir direto para pagina sem estar logado ocorre o seguinte error.

 

Referência de objeto não definida para uma instância de um objeto.

Descrição: Ocorreu uma exceção não tratada durante a execução da atual solicitação da Web. Examine o rastreamento de pilha para obter mais informações sobre o erro e onde foi originado no código.

Detalhes da Exceção: System.NullReferenceException: Referência de objeto não definida para uma instância de um objeto.

Erro de Origem:



Linha 51:             Session.Timeout = 300;Linha 52: Linha 53:               usuario = this.Session["loginAluno"].ToString();Linha 54: Linha 55:             cmdcod.CommandText = "SELECT aluno_codAluno FROM loginusuarios WHERE loginAluno ='" + usuario + "'";

 

 

vou postar meus codigo abaixo:

 

Default.cs

 

protected void Button1_Click(object sender, EventArgs e)

{
this.Session["loginAluno"] = this.tbLogin.Text;
try
{
con.Open();
string sql = "SELECT aluno_codAluno, loginAluno FROM loginusuarios WHERE loginAluno=@Usuario AND senha=@Senha";
cmd.CommandText = sql;
cmd.Parameters.Clear();
cmd.Parameters.Add(new MySqlParameter("Usuario", tbLogin.Text));
cmd.Parameters.Add(new MySqlParameter("Senha", tbSenha.Text));
reader = cmd.ExecuteReader();
bool countss = false;
if (reader.Read())
{
string aluno_codAluno = reader["aluno_codAluno"].ToString();
this.Session["UsuarioId"] = aluno_codAluno;
countss = true;
}
if (countss)
{
FormsAuthentication.RedirectFromLoginPage(tbLogin.Text,CheckBox1.Checked);
Response.Redirect("Seguranca/autorizado.aspx");
}
else
{
ClientScript.RegisterStartupScript(this.GetType(), "teste", "alert('Login ou Senha Incorreto, Verifique');", true);
}
}
catch (Exception ex)
{
ClientScript.RegisterStartupScript(this.GetType(), "teste", "alert('Erro ao logar no DB');", true);
}
}
Esta parte a cima funciona corretamente a baixo onde o codigo da error.
protected void Page_Load(object sender, EventArgs e)
{
StringBuilder str = new StringBuilder();
StringBuilder str1 = new StringBuilder();
StringBuilder str2 = new StringBuilder();
StringBuilder str3 = new StringBuilder();
StringBuilder str4 = new StringBuilder();
StringBuilder str5 = new StringBuilder();
Session.Timeout = 300;
usuario = this.Session["loginAluno"].ToString(); <--- E esse parte que da o erro, que mostrei mais acima.
cmdcod.CommandText = "SELECT aluno_codAluno FROM loginusuarios WHERE loginAluno ='" + usuario + "'";
try
{
con.Open();
try
{
readerler = cmdcod.ExecuteReader();
while (readerler.Read())
{
codigoAluno = readerler.GetValue(0).ToString();
}
}
catch (InvalidCastException ex)
{
ClientScript.RegisterStartupScript(this.GetType(), "teste", "alert('CAIU NO CATCH');", true);
}
}
catch (Exception ex)
{
ClientScript.RegisterStartupScript(this.GetType(), "teste", "alert('aaaaaaaaaaaaaa');", true);
}
cmd.CommandText = "SELECT nomeAluno, A.codTurma, descricao, dataNascimento FROM aluno as A, turma as T WHERE A.codAluno = '" + codigoAluno + "' AND A.codTurma = T.codTurma AND A.nomeAluno = nomeAluno AND T.descricao = descricao";
try
{
con.Close();
con.Open();
try
{
reader = cmd.ExecuteReader();
while (reader.Read())
{
nomeAluno = reader.GetValue(0).ToString();
codTurma = reader.GetValue(1).ToString();
descricao = reader.GetValue(2).ToString();
dataNascimento = reader.GetValue(3).ToString();
}
}
catch (InvalidCastException ex)
{
ClientScript.RegisterStartupScript(this.GetType(), "teste", "alert('" + ex + " CAIU NO CATCH');", true);
}
}
catch (Exception ex)
{
ClientScript.RegisterStartupScript(this.GetType(), "teste", "alert('bbbbbbbb ');", true);
}
str.Append("" + codigoAluno + "");
lbRa.Text = str.ToString();
str1.Append("" + nomeAluno + "");
lbNome.Text = str1.ToString();
str2.Append("" + descricao + "");
lbSerie.Text = str2.ToString();
str3.Append("" + dataNascimento + "");
lbNasc.Text = str3.ToString();
}
protected void Button1_Click(object sender, EventArgs e)
{
FormsAuthentication.SignOut();
}
Obrigado, espero não estar quebrando nem 1 regra postando esse monte de coisa ^^. Obrigado

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Galera como eu resolvi vou estar postando aqui o código que fiz.

 

Default.cs

 

if (countss)
{
Session.Add("IsLogado", true);
FormsAuthentication.RedirectFromLoginPage(tbLogin.Text,CheckBox1.Checked);
Response.Redirect("Seguranca/autorizado.aspx");
}
Se Olharem la em cima verão a onde eu alterei.
if (Convert.ToBoolean(Session["IsLogado"]) == false)
{
Response.Redirect("../Default.aspx");
}
else
{
Response.Write("Você Precisa Estar Logado, Para Visualizar Esta Pagina");
usuario = this.Session["loginAluno"].ToString();
}
Esse e da pagina que e direcionada, somente os logados terá permissão de ficar nela
muito simples. mas pra quem nao conhece para que vai ser um bicho de sete cabeça!

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.