Identidade principal e cookies do ASP.NET
Eu tenho um site ASP.NET Core usando AspNetCore.Identity.EntityFrameworkCore 1.1.1 e cookies para autorizar / autenticar meus usuários. Não importa qual escolha como configuração no código abaixo, o cookie expirará após cerca de 20 minutos e não consigo entender o porquê. O site não funcionará mais, a menos que você feche o navegador e limpe o histórico / cookies. Alguma ideia?
services.AddIdentity<ApplicationUser, IdentityRole>(config =>
{
// Require a confirmed email in order to log in
config.SignIn.RequireConfirmedEmail = true;
})
.AddEntityFrameworkStores<ApplicationDbContext>()
.AddDefaultTokenProviders();
app.UseIdentity();
// Add cookie middleware to the configure an identity request and persist it to a cookie.
app.UseCookieAuthentication(new CookieAuthenticationOptions
{
AuthenticationScheme = "Cookie",
LoginPath = new PathString("/Account/Login/"),
AccessDeniedPath = new PathString("/Account/Forbidden/"),
AutomaticAuthenticate = true,
AutomaticChallenge = true,
ExpireTimeSpan = TimeSpan.FromMinutes(20),
SlidingExpiration = true,
});
Eu também tenho algum código de navalha que controla se o menu admin deve ser exibido na página _layout. Isso trava quando o cookie expira, pois os usuários repentinamente não têm reivindicações. Existe uma maneira melhor de lidar com isso?
// If user is admin then show drop down with admin navigation
@if (User.HasClaim(System.Security.Claims.ClaimTypes.Role, "admin"))
{
<ul class="nav navbar-nav">
@*etc*@
</ul>
}