Close Menu
Código Simples .NETCódigo Simples .NET
    Facebook X (Twitter) Instagram
    Trending
    • NewSQL em 2025: O Estado Atual, Tendências e o Futuro dos Bancos de Dados Relacionais Escaláveis
    • 12 Regras Essenciais para Reduzir a Latência de Aplicações
    • Cache Hit Ratio: Como uma Simples Métrica Pode Revolucionar sua Arquitetura
    • Como a Uber calcula o tempo estimado de chegada
    • 30 APIs Gratuitas para desenvolvedores
    • Por que escalar escrita é tão mais difícil do que escalar leitura?
    • MongoDB Analyzer para .NET: Visualize e otimize suas consultas de forma simples
    • Cardinalidade: O Conceito que Transforma o Desempenho de Bancos de Dados SQL e NoSQL
    Facebook X (Twitter) Instagram
    Código Simples .NETCódigo Simples .NET
    Código Simples .NETCódigo Simples .NET
    Home»Asp.net»C#»Trabalhando com sessões com Asp.NET Core 2.0

    Trabalhando com sessões com Asp.NET Core 2.0

    Jhonathan SoaresBy Jhonathan Soares5 de junho de 20182 Mins Read C#
    Share
    Facebook Twitter LinkedIn WhatsApp Copy Link

    Recentemente enfrentei um problema, que foi trafegar dados entre páginas com asp.net core. Acabei utilizando sessões que foi bastante fácil de configurar e utilizar com .net.

    Primeiramente , altere o método ConfigureServices() classe de Startup , adicione serviços para a sessão e seu armazenamento de backup:

    public void ConfigureServices(
                IServiceCollection services)
            {
                services.AddDistributedMemoryCache();
                services.AddSession();
            }
    
    public void Configure(
                IApplicationBuilder app,
                IHostingEnvironment env)
            {
                app.UseSession();
     
                app.Use(async (context, next) =>
                {
                    context.Session.SetString("GreetingMessage", "Hello Session State");
                    await next();
                });
     
                app.Run(async (context) =>
                {
                    var message = context.Session.GetString("GreetingMessage");
                    await context.Response.WriteAsync($"{message}");
                });
    }
    

     

    Você pode utilizar o método GetString ou SetString em qualquer parte do seu código, com isto você poderá armazenar informações e obtê-las posteriormente.

    Durante a configuração dos serviços de sessão, podemos definir várias propriedades:

    • HttpOnly : define se o cookie é acessível por meio do JavaScript. O padrão é true, o que significa que não pode ser acessado via scripts no lado do cliente.
    • Name : usado para substituir o nome do cookie padrão.
    • SecurePolicy : determina se o cookie de sessão é transmitido somente por meio de solicitações HTTPS.
    • IdleTimeout : define o tempo de expiração da sessão, cada solicitação redefine o tempo limite. O padrão é 20 minutos.

    Veja o exemplo:

      public void ConfigureServices(
               IServiceCollection services)
            {
                services.AddDistributedMemoryCache();
                services.AddSession(options =>
                {
                    options.Cookie.HttpOnly = true;
                    options.Cookie.Name = ".Fiver.Session";
                    options.Cookie.SecurePolicy = CookieSecurePolicy.Always;
                    options.IdleTimeout = TimeSpan.FromMinutes(10);
                });
      }

     

    Você também pode armazenar objetos, basta apenas fazer uma adição de um método na classe HttpContext.Session (ou ISession que implementa o método) e assim podemos serializar objetos em strings JSON para conseguir isso:

      public static class SessionExtensions
        {
            public static void SetObject<T>(this ISession session, string key, T value)
            {
                session.SetString(key, JsonConvert.SerializeObject(value));
            }
     
            public static T GetObject<T>(this ISession session, string key)
            {
                var value = session.GetString(key);
                return value == null ? default(T) :
                                      JsonConvert.DeserializeObject<T>(value);
            }
        }
    

     

    Você pode obter o código fonte do projeto aqui assim como suas referências: https://github.com/jhomarolo/Fiver.Asp.SessionState

    Um abraço!

    Share. Facebook Twitter LinkedIn Telegram WhatsApp Copy Link
    Jhonathan Soares
    • Website
    • Facebook
    • X (Twitter)
    • LinkedIn

    Criador do blog Código Simples e com mais 15 anos de experiência em TI, com títulos de MVP Microsoft na área de Visual Studio Development, Neo4j Top 50 Certificate, Scrum Master e MongoDB Evangelist.

    Posts Relacionados

    O que é a Ecma e qual é sua relação com C#?

    C# Post do Leitor 29 de julho de 20247 Mins Read

    UUID vs ULID: comparação e exemplos em C#

    C# 19 de junho de 20245 Mins Read

    Entendendo o ObjectId no MongoDB

    C# NoSql 25 de maio de 20246 Mins Read
    Newsletter

    Digite seu endereço de e-mail para receber notificações de novas publicações por e-mail.

    Junte-se a 25mil outros assinantes
    Posts recentes
    • NewSQL em 2025: O Estado Atual, Tendências e o Futuro dos Bancos de Dados Relacionais Escaláveis
    • 12 Regras Essenciais para Reduzir a Latência de Aplicações
    • Cache Hit Ratio: Como uma Simples Métrica Pode Revolucionar sua Arquitetura
    • Como a Uber calcula o tempo estimado de chegada
    • 30 APIs Gratuitas para desenvolvedores
    Categorias
    • Arquitetura (14)
      • Testes (2)
    • Asp.net (120)
      • C# (89)
      • Mvc (13)
    • Banco de dados (90)
      • NoSql (58)
      • Sql (38)
    • Boas práticas (29)
      • Gestão & Produtividade (1)
      • Metodologias Ágeis (6)
    • Cursos (52)
    • Dicas (105)
    • Front-End (92)
    • IA (1)
    • Linux (6)
    • NodeJS (4)
    • Post do Leitor (9)
    • Python (5)
    • Seo (12)
    • Tecnologia (30)
      • ITIL (1)
      • Padrões de Projeto (4)
    • Testes (2)

    VEJA TAMBÉM

    Cursos
    12 de fevereiro de 20166 Mins Read

    1000 livros gratuitos sobre programação!

    Olha que dica bacana! A pagina só com livros sobre programação é mantida no GitHub…

    30 APIs Gratuitas para desenvolvedores

    Facebook X (Twitter) Instagram LinkedIn

    Type above and press Enter to search. Press Esc to cancel.

    Vá para versão mobile