none
Session Asp.Net C# RRS feed

  • Pergunta

  • Pessoal utilizando asp.net   teria como fazer uma session com vários valores tipo

    Session 01
    nome =Tiago
    idade =22
    cidade = SP
    bairro= XXX


    e de pois recuperar os valores.....
    (Asp.Net e C#)

    terça-feira, 15 de setembro de 2009 16:51

Respostas

  • Bom dia Tiago.

    Concordo com o Jefferson, veja uma ideia seguindo esta linha de raciocinio.

    Crie a classe Ex: Usuário com as prop que precisar.

    public strin nome { get; set; }
    public int idade { get; set; }
    public String cidade { get; set; }
    public string bairro { get; set; }

    Atribua os Valores


    Usuario objUser = new Usuario();
    
    objUser.nome = "Tiago";
    objUser.idade = 22;
    objUser.bairro = "Bairro";
    objUser.cidade = "XXXXX";
    
    Session["UserData"] = objUser;

    Depois os Recupere


    string nome = ((Usuario) Session["UserData"]).nome;
    int idade = ((Usuario) Session["UserData"]).idade;
    string bairro = ((Usuario) Session["UserData"]).bairro;
    string cidade = ((Usuario)Session["UserData"]).cidade;


    “Caso esta resposta tenha ajudado a solucionar sua dúvida, favor clicar em “Marcar como Resposta” para beneficiar outros membros da comunidade que estejam lendo este thread”.
    Atenciosamente,
    Harley Araujo
    quinta-feira, 17 de setembro de 2009 13:23
  • Thiago,

    Crie uma Classe ou uma Struct adicione os valores, adicione ao Session e depois recupere. Não esqueça de converter os dados na Leitura do Session depois.

    Jefferson Gobi
    http://twitter.com/jeffersongobi
    quarta-feira, 16 de setembro de 2009 00:25

Todas as Respostas

  • Tiago,

    eu costumo fazer isto assim;

    Session("nome") = "tiago"
    Session("idade") = "22"

    para recuperar;
    crio uma string,

    string nome_ = Session("nome")
    string idade_ = Session("idade")

    é isso ai.

    Antonio.
    terça-feira, 15 de setembro de 2009 17:06
  • Tiago... vou postar um exemplo de um código que tenho para login do usuário num sistema web... dessa forma as sessions com valores de vários tipos ficam armazenados e disponiveis para o sistema...


    cmdUsuario... que coloquei no código me tras as informações da classe que acessa o banco, retornando os dados o usuário e armazenando eles nas sessions ...


     public partial class _Default : System.Web.UI.Page
    {

        protected void Page_Load(object sender, EventArgs e)
        {

        }

        protected void cmdSubmit_Click(object sender, EventArgs e)
        {
           
                Usuarios cmdUsuario = new Usuarios();
                int id_usuario = new int();
                id_usuario = cmdUsuario.EfetuaLogin(txtUsuario.Text, txtSenha.Text);
                if (id_usuario > 0)
                {
                    Logs LoginAcesso = new Logs();
                    LoginAcesso.LogAcessoSistema(cmdUsuario.id_usuario, Request.ServerVariables["REMOTE_ADDR"].ToString());

                    bool Ie6 = new bool();
                    if (int.Parse(hidIE.Value) == 8)
                    {
                        Ie6 = false;
                    }
                    else
                    {
                        Ie6 = true;
                    }

                    lblErro.Text = "login Efetuado com sucesso!";
                    Session.Add("id_usuario", cmdUsuario.id_usuario);
                    Session.Add("id_usuario_portador", cmdUsuario.id_usuario_portador);
                    Session.Add("id_usuario_carteira", cmdUsuario.id_usuario_carteira);
                    Session.Add("id_usuario_cliente", cmdUsuario.id_usuario_cliente);
                    Session.Add("nm_email", cmdUsuario.nm_email);
                    Session.Add("nm_nome", cmdUsuario.nm_nome);
                    Session.Add("nm_assinatura", cmdUsuario.nm_assinatura);
                    Session.Add("nm_permissoes", cmdUsuario.nm_permissoes);
                    Session.Add("nm_tipo_usuario", cmdUsuario.nm_tipo_usuario);
                    Session.Add("nm_usuario", cmdUsuario.nm_usuario);
                    Session.Add("fl_monitorado", cmdUsuario.fl_monitorado);
                    Session.Add("fl_primeiro_acesso", cmdUsuario.fl_primeiro_acesso);
                    Session.Add("fl_ie6", Ie6);              

                    Response.Redirect("Default.aspx");
                }
                else
                {
                  
                }
           
        }




    e por ai vai...

    Espero ter ajudado

    Abraços


    Rogério Rodrigues

    }

    Depois é só criar uma string para recuperar o valor... convertendo se necessário...

    string nome = Session["nome"];

    terça-feira, 15 de setembro de 2009 17:06
  • mais dessa forma não fica varias sesions ?

                   Session.Add("id_usuario", cmdUsuario.id_usuario);  - 1
                    Session.Add("id_usuario_portador", cmdUsuario.id_usuario_portador); - 2
                    Session.Add("id_usuario_carteira", cmdUsuario.id_usuario_carteira);- 3
                    Session.Add("id_usuario_cliente", cmdUsuario.id_usuario_cliente); -4



    ja  seriam  4 session...  certo isso?....
    eu queria uma  1 session com varios valores... tipo um vetor...


    Muito Obrigado.......

    Atenciosamente Tiago Xavier


    terça-feira, 15 de setembro de 2009 18:49
  • mais dessa forma não fica varias sesions ?

                   Session.Add("id_usuario", cmdUsuario.id_usuario);  - 1
                    Session.Add("id_usuario_portador", cmdUsuario.id_usuario_portador); - 2
                    Session.Add("id_usuario_carteira", cmdUsuario.id_usuario_carteira);- 3
                    Session.Add("id_usuario_cliente", cmdUsuario.id_usuario_cliente); -4



    ja  seriam  4 session...  certo isso?....
    eu queria uma  1 session com varios valores... tipo um vetor...


    Muito Obrigado.......

    Atenciosamente Tiago Xavier



    Não me lembro bem.. mais acho que ja trabalhei assim no PHP.... a 10 mil anos  atras....
    terça-feira, 15 de setembro de 2009 18:51
  • Tiago,

    E eu acho que posso estar falando besteira mas assim...
    Quand vc adiciona um dado na Session... aquele dado ocupa um index... e assim por diante...
    Se em um determinado momento vc usar um breakpoint no sistema por uma questão de teste e for lá no recurso Watch do Visual Studio e colocar um exemplo... Session[0]... vai trazer um dado... Session[1], vai trazer outro... e assim por diante...

    A Session é um objeto atribuido a cada usuário e dentro da Session possui um ou mais variáveis com os dados de acesso desse usuário, disponivel para todo o sistema web... desde que o usuário permaneça on line... acredito que assim ja resolva seu problema...

    Qualquer coisa da uma olhada mais técnica nesses links da microsoft... tem uma base legal de como funciona...

    http://msdn.microsoft.com/pt-br/library/system.web.ui.page.session.aspx

    http://msdn.microsoft.com/pt-br/library/ms178581.aspx

    Você encontra o mesmo que falei acima... só que de modo bem mais detalhado e técnico...

    Espero ter ajudado...

    Abraços
    Rogério Rodrigues
    terça-feira, 15 de setembro de 2009 19:09
  • Então e que estou vindo de outras linguagens e ai  confundo um poco...
    Muito Obrigado..... Valeu mesmo pela ajuda...  eu estou trabalhando em  uma session  com  vetor... ainda não acabei  essa parte..
    mais assim que tiver acabado... eu coloco ela aqui.. Na verdade nem sei  se é correto,  mais vou fazer os testes.....

    Muito Obrigado.. pela ajuda...
    terça-feira, 15 de setembro de 2009 19:19
  • Tranquilão!

    Mas ao menos pelo que você falou la em cima, dessa forma que te falei, da pra recuperar os valores sem precisar ter esse trabalho de session com vetor, vai ser mais simples e com certeza vai funcionar...

    Abraços
    Rogério Rodrigues
    terça-feira, 15 de setembro de 2009 19:22
  • Ja que estamos  converssando sobre o assunto vou te passar o problema....

    tenho um sistema que para cada pagina tenho uma uma validação
    para ficar mais rapido o procedimento  de validação, de acesso vou por na session...
    Seria a melhor forma de fazer?..



    Obrigado...
    Atenciosamente Tiago Xavier







    terça-feira, 15 de setembro de 2009 20:01
  • É mais rápido do que ir no banco, porém corre o risco dos dados sa sessão não estarem atualizados.

    Evite o máximo criar sessões, pois a mesma consume memória do servidor.
    Vital Rocha
    terça-feira, 15 de setembro de 2009 20:12
  • Sendo assim melhor opção XML? com as permissões..
    terça-feira, 15 de setembro de 2009 20:14
  • A boa prática é utilizar Profiles ao invés de Session.

    Tem um tópico mais abaixo desse que discute justamente isso.

    abraços.


    Vital Rocha
    terça-feira, 15 de setembro de 2009 20:16
  • Blz Muito Obrigado pela dica...

    terça-feira, 15 de setembro de 2009 20:21
  • Thiago,

    Crie uma Classe ou uma Struct adicione os valores, adicione ao Session e depois recupere. Não esqueça de converter os dados na Leitura do Session depois.

    Jefferson Gobi
    http://twitter.com/jeffersongobi
    quarta-feira, 16 de setembro de 2009 00:25
  • Bom dia Tiago.

    Concordo com o Jefferson, veja uma ideia seguindo esta linha de raciocinio.

    Crie a classe Ex: Usuário com as prop que precisar.

    public strin nome { get; set; }
    public int idade { get; set; }
    public String cidade { get; set; }
    public string bairro { get; set; }

    Atribua os Valores


    Usuario objUser = new Usuario();
    
    objUser.nome = "Tiago";
    objUser.idade = 22;
    objUser.bairro = "Bairro";
    objUser.cidade = "XXXXX";
    
    Session["UserData"] = objUser;

    Depois os Recupere


    string nome = ((Usuario) Session["UserData"]).nome;
    int idade = ((Usuario) Session["UserData"]).idade;
    string bairro = ((Usuario) Session["UserData"]).bairro;
    string cidade = ((Usuario)Session["UserData"]).cidade;


    “Caso esta resposta tenha ajudado a solucionar sua dúvida, favor clicar em “Marcar como Resposta” para beneficiar outros membros da comunidade que estejam lendo este thread”.
    Atenciosamente,
    Harley Araujo
    quinta-feira, 17 de setembro de 2009 13:23
  • Certo, Muito Obrigado  vou fazer os teste ... assim que acabar entro em contato....



    Muito  Obrigado....
    segunda-feira, 21 de setembro de 2009 22:02
  • atravez da propriedades de uma classe vc consegue passar um objeto inteiro a uma session

    pode utilizar tbm cross page

    abraço,


    Leonardo B. Moreira - Web Developer .net with asp.net and C# - I know, it is only programming but I like it.
    terça-feira, 22 de setembro de 2009 02:05
  • Obrigado...Me ajudou muito tbm
    sexta-feira, 4 de janeiro de 2013 14:29