meta info
  • Title: Asp.Net Core - Configure Authentication Cookie
  • Keywords: asp.net,core,authentication,cookie,login,time,custom login,identity
  • Description: How to configure authentication cookie to define custom login path and extend session time.
  • Author: Ziya Mollamahmut
  • Date: 14-Apr-2021
  • Image: https://github.com/LazZiya/Docs/raw/master/Miscellaneous/v1.0/images/ziya-logo.png
  • Image-alt: Miscellaneous Logo
  • Version: v1.0

Configuring Authentication Cookie

By Ziya Mollamahmut

where do I configure Account/Login path that I want to redirect to?

The configuration can be done in startup using custom authentication cookie:

public class XCookieAuthEvents : CookieAuthenticationEvents
{
    public override Task RedirectToLogin(RedirectContext<CookieAuthenticationOptions> context)
    {
        context.RedirectUri = $"/Identity/Account/CustomLogin";
        return base.RedirectToLogin(context);
    }

    public override Task RedirectToLogout(RedirectContext<CookieAuthenticationOptions> context)
    {
        context.RedirectUri = $"/Identity/Account/CustomLogout";
        return base.RedirectToLogout(context);
    }

    public override Task RedirectToAccessDenied(RedirectContext<CookieAuthenticationOptions> context)
    {
        context.RedirectUri = $"/Identity/Account/CustomAccessDenied";
        return base.RedirectToAccessDenied(context);
    }

    public override Task RedirectToReturnUrl(RedirectContext<CookieAuthenticationOptions> context)
    {
        context.RedirectUri = $"/CustomReturnUrl";
        return base.RedirectToReturnUrl(context);
    }
}

Then register in startup:

services.AddScoped<XCookieAuthEvents>();

// optional: customize cookie expiration time
services.ConfigureApplicationCookie(ops =>
{
    ops.EventsType = typeof(XCookieAuthEvents);
    ops.ExpireTimeSpan = TimeSpan.FromMinutes(30);
    ops.SlidingExpiration = true;
});