Olá pessoal, meu nome é Mauricio Junior e hoje eu vou falar um pouco sobre sessão no .NETCore usando a linguagem de programação C# para Web.
O problema:
Eu tenho um site e ele pode ser acessado por usuários se eles tiverem um cadastro e tem áreas que só pode entrar se a sessão do usuário estiver ativa.
Solução:
Para resolver esse problema, basta criar uma tela de login e fazer com que o usuário use o seu e-mail e senha e com isso o sistema gera a sessão necessária para entrar na área restrita.
No .NETCore, as sessões mudaram um pouco e para isso é necessário configurar algumas partes antes.
Passo 1:
Dentro do arquivo Startup.cs vamos acessar o método ConfigureServices. Adicione o código de referência 1.1 na sua solução.
services.AddSession();
Código 1.1 - Adicionando a session
Passo 2:
Dentro do mesmo método é necessário instanciar ou deixar pronto o acessor de contexto. Veja o código 1.2.
services.AddSingleton<IHttpContextAccessor, HttpContextAccessor>();
Código 1.2 - Adicionando o contexto
Lembre-se que deve ser importado o Microsoft.AspNetCore.Http dentro do seu código bem no início do arquivo Startup.cs
using Microsoft.AspNetCore.Http;
Código 1.3 - Importando http
Passo 3:
Dentro do mesmo arquivo, acesse o método Configure e adicione o código 1.4 na sua solução.
app.UseSession();
Código 1.4 - Adicionando a session
Passo 4:
Dentro da página de login, é necessário utilizar o importe do Microsoft.AspNetCore.Http
porque é dele que vamos gerar a sessão dentro do sistema para pegar a informação
dentro de qualquer outra página.
Veja como gerar a sessão no código 1.5.
HttpContext.Session.SetString("Email", "email@email.com");
Código 1.5 - Gerar sessão em string na página de login
Se o valor for do tipo inteiro, ou seja, numérico é necessário gerar a sessão de outra maneira. Veja o código 1.6.
HttpContext.Session.SetInt32("UserId", 1);
Código 1.6 - Gerando sessão com o valor inteiro.
Passo 5:
É importante adicionar a interface IHttpContextAccessor no construtor da página ou do método que vai usar para o login. Código 1.7.
public LoginModel(IHttpContextAccessor httpContextAccessor)
{
this._httpContextAccessor = httpContextAccessor;
}
Código 1.7 - Adicionando construtor
É necessário usar no construtor porque é uma injeção de dependência para usar a classe e gerar as sessões que achar necessário dentro da sua aplicação.
Eu fico por aqui e qualquer dúvida por entrar em contato comigo pelo site www.mauriciojunior.net.
Não esqueça de ver a nossa nova plataforma ecode10.academy feita para te ensinar de maneira simples e fácil. Assim você pode virar um programador e mudar a sua vida.