none
Session Encapsuladas RRS feed

  • Pergunta

  • Olá galera,
    Estou começando agora a utilizar as variaveis da Session e percebi que fica uma bagunça já que elas são publicas.
    Será que há alguma forma de encapsular algumas Sessions em classes no App_Code ?

    exemplo:
    public class static TESTE
    {
      public static void SetVarSession(Datatable dt)
      {
           //Tratamento
           //
           Session["TESTE"] = dt ;
           //
      }
      public static Datatable GetVarSession()
      {
           //Tratamento
           //
           return (DataTable)Session["TESTE"];
           //
      }
    }

    Qual o namespace que devo utilizar para ter acesso ao Session[] no App_Code?
    Isso dá certo? É recomendavel ? Existe uma forma melhor de gerenciar meus dados em memoria por usuario ?



    Desculpa pela enchurrada de perguntas !
    Sou assim mesmo.

    Valeu galera!
    Abraão Alves - Um eterno estudante
    quarta-feira, 14 de outubro de 2009 14:47

Respostas

  • Olá galera,
    Estou começando agora a utilizar as variaveis da Session e percebi que fica uma bagunça já que elas são publicas.
    Será que há alguma forma de encapsular algumas Sessions em classes no App_Code ?

    exemplo:
    public class static TESTE
    {
      public static void SetVarSession(Datatable dt)
      {
           //Tratamento
           //
           Session["TESTE"] = dt ;
           //
      }
      public static Datatable GetVarSession()
      {
           //Tratamento
           //
           return (DataTable)Session["TESTE"];
           //
      }
    }

    Qual o namespace que devo utilizar para ter acesso ao Session[] no App_Code?
    Isso dá certo? É recomendavel ? Existe uma forma melhor de gerenciar meus dados em memoria por usuario ?



    Desculpa pela enchurrada de perguntas !
    Sou assim mesmo.

    Valeu galera!
    Abraão Alves - Um eterno estudante


    Dá certo, é recomendável, considero a melhor forma de fazer.

    Você precisa fazer imports/using para System.Web.HttpContext.

    HttpContext é uma classe, não um namespace (tenho impressão que VB aceita o imports, C# só aceita até System.Web)  a classe HttpContext possui uma propriedade Current e nela encontrará o ambiente de sessão - Session - podendo ter acesso as variáveis de sessão normalmente.


    []'s

    Dennes
    * Treinamento de ASP.NET 3.5 dia 24/10 - Apenas 12x R$ 70,88 - Inscreva-se em http://www.bufaloinfo.com.br/cursos/aspnet2.asp

    * Treinamento de Introdução a OO e Framework .NET c/C# dia  17/10 - Apenas 12 R$ 42,53  Inscreva-se em http://www.bufaloinfo.com.br/cursos/fundamentosOOFramework.asp

    Tel : (11) 3170-3056 (21)9240-5134  E-Mail: contato arroba bufaloinfo.com.br
    http://www.bufaloinfo.com.br


    Dennes - Se resolveu, classifique a mensagem, por favor - [http://www.bufaloinfo.com.br] NOVO DVD Segurança no ASP.NET : http://www.bufaloinfo.com.br/LearingSeriesSegurancaASPNET2.asp
    • Marcado como Resposta Abraão Alves sábado, 31 de outubro de 2009 18:28
    quinta-feira, 15 de outubro de 2009 00:12

Todas as Respostas

  • O que você pode fazer é criar um Enum para armazenar suas possíveis sessions.

    Ex.:

    public enum MySessions
    {
    UserData,
    Authenticated,
    Others
    }

    E quando for usar uma sessão, fazer algo como:

    (User)Session[MySession.UserData]

    Assim você garante que o mesmo valor é usado como chave para suas sessões.

    Abraço!
    Roberto Santos http://blog.robertoosantos.com
    quarta-feira, 14 de outubro de 2009 16:27
  • Olá galera,
    Estou começando agora a utilizar as variaveis da Session e percebi que fica uma bagunça já que elas são publicas.
    Será que há alguma forma de encapsular algumas Sessions em classes no App_Code ?

    exemplo:
    public class static TESTE
    {
      public static void SetVarSession(Datatable dt)
      {
           //Tratamento
           //
           Session["TESTE"] = dt ;
           //
      }
      public static Datatable GetVarSession()
      {
           //Tratamento
           //
           return (DataTable)Session["TESTE"];
           //
      }
    }

    Qual o namespace que devo utilizar para ter acesso ao Session[] no App_Code?
    Isso dá certo? É recomendavel ? Existe uma forma melhor de gerenciar meus dados em memoria por usuario ?



    Desculpa pela enchurrada de perguntas !
    Sou assim mesmo.

    Valeu galera!
    Abraão Alves - Um eterno estudante


    Dá certo, é recomendável, considero a melhor forma de fazer.

    Você precisa fazer imports/using para System.Web.HttpContext.

    HttpContext é uma classe, não um namespace (tenho impressão que VB aceita o imports, C# só aceita até System.Web)  a classe HttpContext possui uma propriedade Current e nela encontrará o ambiente de sessão - Session - podendo ter acesso as variáveis de sessão normalmente.


    []'s

    Dennes
    * Treinamento de ASP.NET 3.5 dia 24/10 - Apenas 12x R$ 70,88 - Inscreva-se em http://www.bufaloinfo.com.br/cursos/aspnet2.asp

    * Treinamento de Introdução a OO e Framework .NET c/C# dia  17/10 - Apenas 12 R$ 42,53  Inscreva-se em http://www.bufaloinfo.com.br/cursos/fundamentosOOFramework.asp

    Tel : (11) 3170-3056 (21)9240-5134  E-Mail: contato arroba bufaloinfo.com.br
    http://www.bufaloinfo.com.br


    Dennes - Se resolveu, classifique a mensagem, por favor - [http://www.bufaloinfo.com.br] NOVO DVD Segurança no ASP.NET : http://www.bufaloinfo.com.br/LearingSeriesSegurancaASPNET2.asp
    • Marcado como Resposta Abraão Alves sábado, 31 de outubro de 2009 18:28
    quinta-feira, 15 de outubro de 2009 00:12