Usuário com melhor resposta
Retornar Session do DB SQL a Página

Pergunta
-
Boa Noite...
Estou desenvolvendo um projeto em asp.net com C# e sql....
Eu criei uma area de cadastro de usuarios, mas não consigo fazer a sessão aparecer em outra página apos o usuario ter logado.
Então, segue o codigo abaixo:
using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.UI; using System.Web.UI.WebControls; using System.Data.SqlClient; namespace Teste
{ public partial class _default : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { } protected void btnEntra_Click(object sender, EventArgs e) { string strConn = "Data Source = MEU-PC\\SQLEXPRESS; Initial Catalog = table; Integrated Security = true;"; SqlConnection con = new SqlConnection(strConn); string strConsulta = "SELECT Login FROM tblUsers WHERE Login = @Login AND Senha = @Senha"; SqlCommand cmd = new SqlCommand(strConsulta, con); SqlDataReader objDr; cmd.Parameters.Add(new SqlParameter("@Login", txtLogin.Text)); cmd.Parameters.Add(new SqlParameter("@Senha", txtPass.Text)); try { con.Open(); objDr = cmd.ExecuteReader(System.Data.CommandBehavior.CloseConnection); if ((objDr.HasRows)) { Response.Redirect("~/Usuario/Acesso.aspx"); } else { Response.Redirect("default.aspx"); } } catch (SqlException ex) { throw ex; } } } }
Com eu posso modificar este código, para retornar o usuario apos o login.
Obrigado pela atenção.
Respostas
-
Boa Tarde....
Funcionou... Posi eu tive que colocar o comando while, para ler o meu SqlDataReader.
Obrigado pela força.
- Marcado como Resposta Rafael_100 sexta-feira, 6 de abril de 2012 17:19
Todas as Respostas
-
Não sei se entede direito!
Vc que criar uma Session?
con.Open(); objDr = cmd.ExecuteReader(System.Data.CommandBehavior.CloseConnection); if ((objDr.HasRows)) { Response.Redirect("~/Usuario/Acesso.aspx");
Session["usuario"] = "o que vc quiser";
} else { Response.Redirect("default.aspx");
Session["usuario"] = "";
}
Dai esta disponível em todas as páginas.
Se testar Session["usuario"] igual a "" ou mesmo null é porque expirou a session.
Ninguém falou que seria fácil!
-
Olá Rafael vou tentar te explicar o mais simples possivel beleza.
Seguinte : Para criamos uma Session basta vc fazer assim.
Session.Add("Nome da Session", "Nome qualquer"); /* Aqui eu estou passando um nome qualquer */
Session.Add("Nome da Session", e.CommandArgument); /* aqui eu estou passando um ComandArgument */
Session.Add("Nome da Session", e.CommandName.ToString()); /* Neste exemplo eu estou passando o ComandName */
Session.Add("Nome da Session", ddl_segmento.SelectedItem.Text); /* Aqui um DropDownlist */Page.RegisterStartupScript("", "<script> popup('Analitico.aspx', '980', '500');</script>"); /* Aqui é onde vc ira colocar a sua pagina de destino */
Na pagina de destino vc coloca assim para recuperar.
(string)Session["Nome da Session"].ToString() /* Aqui vc esta recuperando o valor da session da pagina anterior. */
CASO A RESPOSTA TENHA AJUDADO FAVOR MARCAR COMO RESPONDIDA.
-
Boa tarde...
Eu tentei outro código, e ele me retornou o usuario logado....
Mas tenho 2 registros em minha tabela, mas quando eu logo com o 2º registro ele aparece normal.
Mas quando um logo com o 1º registro, ele aparece com o o 2º registro. Porque??
Segue o Código:
using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.UI; using System.Web.UI.WebControls; using System.Data.SqlClient; namespace Ensinado_e_Aprendendo_com_Professor.Usuario { public partial class Usuario : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { string strConn = "Data Source = MEU-PC\\SQLEXPRESS; Initial Catalog = table; Integrated Security = true;"; SqlConnection con = new SqlConnection(strConn); string strConsulta = "SELECT Login FROM tblUsers"; SqlCommand cmd = new SqlCommand(strConsulta, con); con.Open(); SqlDataReader r; r = cmd.ExecuteReader(); if (Session["Login"] == null) { while (r.Read()) { txtAc.Text = r["Login"].ToString(); } } } } }
Como eu resolvo?
OBS.: Este código é da página Usuario/Acesso.aspx, pois eu gostaria de retonar o registro em uma label.
Obrigado pela atenção.
- Editado Rafael_100 quarta-feira, 4 de abril de 2012 15:16
-
A lógica é assim:
- entrou na página de login (load) limpa a Session["suaSession"] = ""
- Digitou a senha corretamente joga valor para Session["suaSession"] = seuUsuario
- Clicou em logout limpa a Session["suaSession"] = ""
E em todas páginas ou namaster teste Session["suaSession"] = "" se sim redireciona para o login
Ninguém falou que seria fácil!
-
Boa tarde....
Eu tentei fazer, mas não funcionou....
Pois, segue um exemplo:
Tenho a minha tblUsers, com o campo Usuario, em meu DB SQL...
Eu gostaria, de saber se é possivel pegar este campo Usuario, e jogar na na pagina apos o usuario estiver logado, na pagina acesso.aspx.
Outro exemplo:
Usuario: Rafael
Senha: 12345
Aaparece como: Bem Vindo usuario: Rafael
e quando ele faz o logoff, vai outro ex:
Test:
123.
Bem Vindo Usuario: test.
Eu sei que esta pergunta deve esta confusa....
Obrigado pela atenção
-
O que você descreveu acima é justamente o roteiro que lhe passei. É só implementar na lógica de vossa aplicação.
Vou tentar ser mais claro, se possível:
Na página login.aspx
protected void Page_Load(object sender, EventArgs e) { Session["Login"] = ""; ... ... Busca informações do usuário no bd ... ... if ((objDr.HasRows)) { Session["Login"] = r["Login"].ToString(); Response.Redirect("~/Usuario/Acesso.aspx"); } else { Response.Redirect("login.aspx"); } }
Na página acesso.aspx
protected void Page_Load(object sender, EventArgs e) { //Verifica a session esta carregada, se não redireciona para o login if (Session["Login"] == "") { Response.Redirect("login.aspx"); } labelLogin.Text = "Olá: " + Session["Login"] }
Ninguém falou que seria fácil!
- Editado jothaz sexta-feira, 6 de abril de 2012 16:38
-
Boa Tarde....
Funcionou... Posi eu tive que colocar o comando while, para ler o meu SqlDataReader.
Obrigado pela força.
- Marcado como Resposta Rafael_100 sexta-feira, 6 de abril de 2012 17:19