none
login+session RRS feed

  • Pergunta

  • Pessoal estou desenvolvendo um portal, seria assim o usuario loga , a session se encarrega de guardar seu id , nisso carregar so os objetos do mesmo.
    veja se estou no caminho:

     

    public class Autentica : Dados
    {
    
    
        public Autentica(string txtUser, string txtSenha)
        {
         
            Objcmd = new SqlCommand();
            Objcmd.CommandType = CommandType.StoredProcedure;
            Objcmd.CommandText = "AUTENTICA";
            Objcmd.Connection = CN;
            Objcmd.Parameters.AddWithValue("@USUARIO", txtUser);
            Objcmd.Parameters.AddWithValue("@SENHA", txtSenha);
            SqlDataReader DR = null;
            DR = Objcmd.ExecuteReader();
    aqui tem como por meio do datareader eu consegue armazenar o id na memoria , e pegar ele na pagina default usando uma session?
            DR.Close();
            DR = null;
            Objcmd.Dispose();
            CN.Close();
            CN.Dispose();
    
        }
    


     

     


    Sao tantas duvidas aproveitando , e uma boa pratica eu criar um classe Dados (SqlConnection,SqlDataReader,DataSetSqlDataAdapter,SqlCommand,SqlParameter+Metodos(PESQUISA,INCLUSAO,DELETAR e etc..) ), e uma classe chamada PropriedadeDados (Get/Set os campos que vou utilizar do meu banco de dados).

    vlw pessoal obrigado desde ja.



    sexta-feira, 30 de setembro de 2011 13:02

Respostas

  • Quanto a 1ª questão de guardar o usuário numa Session seria bem simples você implementar isso...

    Você teria de adicionar o código abaixo logo após você carregar o DataReader com o ExecuteReader do Command:

    if(DR.Read())
    {
    Session.Add("IdUsuario", DR["ID_USUARIO"]);
    }

    Ou seja, ele criaria uma sessão do "IdUsuario" o valor "ID_USUARIO" do DataReader ou seja la qual foi o nome do campo que você retorna da query...

    E para recuperar o valor dessa session posteriormente você teria de checar o valor da mesma... Session["Idusuario"]

    Segue uns links com alguns exemplos básicos..

    http://www.juliobattisti.com.br/tutoriais/mauricioborges/trabalhandocomsession001.asp
    http://www.codigofonte.net/dicas/csharp/80_trabalhando-com-session-em-c

    sexta-feira, 30 de setembro de 2011 19:30
  • Rodrigo,

    Na minha opinião, seria mais interessante guardar o ID ou o Username do usuário no cookie de autenticação do aspnet. Geralmente é bom evitar usar session devido aos problemas que ela traz caso você queira distribuir a sua aplicação em mais de um servidor, por exemplo.

    Para armazenar no cookie é muito simples, basta você usar o método FormsAuthentication.SetAuthCookie(string username, bool createPersistantCookie)

    Se você passar true no segundo parâmetro, a pessoa continuará logada mesmo se fechar o browser, passando false, ao fechar o browser não ficará mais logada (o cookie será deletado).

    Depois, para recuperar o username ou o ID, usa o seguinte código nas páginas: User.Identity.Name

    []s

    • Sugerido como Resposta Henrique Avila terça-feira, 25 de outubro de 2011 16:34
    • Marcado como Resposta Eder CostaModerator quinta-feira, 17 de novembro de 2011 13:41
    terça-feira, 25 de outubro de 2011 16:34
  • Bom dia Rodrigo,

     

    Cara aplicações que exigem login é bom e rápido você usar  FormsAuthentication, não só para cookies, mas ele se encarrega de toda essa parte que você teria que gerenciar na "mão" como session, cookies, etc... é bem simples de usar, apenas com algumas configurações no web.config e algumas linhas de código.

    Da uma olhada no Post abaixo, que contém uma explicação mais detalhada sobre FormsAuthentication e contém para download uma aplicação usando FormsAuthentication:

     

    http://muitomaisque.net/muitomaisque/post/2011/10/25/Criando-uma-aplicacao-Web-com-Forms-Authentication.aspx

     

    Espero que o post te ajude...

    Caso alguma das respostas tenha lhe ajudado, marque o post como resolvido...


    Att, Lucas Pfeiffer - http://muitomaisque.net
    terça-feira, 1 de novembro de 2011 12:50

Todas as Respostas

  • Quanto a 1ª questão de guardar o usuário numa Session seria bem simples você implementar isso...

    Você teria de adicionar o código abaixo logo após você carregar o DataReader com o ExecuteReader do Command:

    if(DR.Read())
    {
    Session.Add("IdUsuario", DR["ID_USUARIO"]);
    }

    Ou seja, ele criaria uma sessão do "IdUsuario" o valor "ID_USUARIO" do DataReader ou seja la qual foi o nome do campo que você retorna da query...

    E para recuperar o valor dessa session posteriormente você teria de checar o valor da mesma... Session["Idusuario"]

    Segue uns links com alguns exemplos básicos..

    http://www.juliobattisti.com.br/tutoriais/mauricioborges/trabalhandocomsession001.asp
    http://www.codigofonte.net/dicas/csharp/80_trabalhando-com-session-em-c

    sexta-feira, 30 de setembro de 2011 19:30
  • Guilherme, so lhe complementando.

     

    Seria interessante ao inves de guardar somente o id, criar uma classe ou estrutura do usuario e carrega-la na session, pois assim economizaria idas no banco para buscar mais informações relacionada ao usuario.

    segunda-feira, 3 de outubro de 2011 21:20
  • Rodrigo,

    Na minha opinião, seria mais interessante guardar o ID ou o Username do usuário no cookie de autenticação do aspnet. Geralmente é bom evitar usar session devido aos problemas que ela traz caso você queira distribuir a sua aplicação em mais de um servidor, por exemplo.

    Para armazenar no cookie é muito simples, basta você usar o método FormsAuthentication.SetAuthCookie(string username, bool createPersistantCookie)

    Se você passar true no segundo parâmetro, a pessoa continuará logada mesmo se fechar o browser, passando false, ao fechar o browser não ficará mais logada (o cookie será deletado).

    Depois, para recuperar o username ou o ID, usa o seguinte código nas páginas: User.Identity.Name

    []s

    • Sugerido como Resposta Henrique Avila terça-feira, 25 de outubro de 2011 16:34
    • Marcado como Resposta Eder CostaModerator quinta-feira, 17 de novembro de 2011 13:41
    terça-feira, 25 de outubro de 2011 16:34
  • Bom dia Rodrigo,

     

    Cara aplicações que exigem login é bom e rápido você usar  FormsAuthentication, não só para cookies, mas ele se encarrega de toda essa parte que você teria que gerenciar na "mão" como session, cookies, etc... é bem simples de usar, apenas com algumas configurações no web.config e algumas linhas de código.

    Da uma olhada no Post abaixo, que contém uma explicação mais detalhada sobre FormsAuthentication e contém para download uma aplicação usando FormsAuthentication:

     

    http://muitomaisque.net/muitomaisque/post/2011/10/25/Criando-uma-aplicacao-Web-com-Forms-Authentication.aspx

     

    Espero que o post te ajude...

    Caso alguma das respostas tenha lhe ajudado, marque o post como resolvido...


    Att, Lucas Pfeiffer - http://muitomaisque.net
    terça-feira, 1 de novembro de 2011 12:50