Skip to content

Latest commit

 

History

History
38 lines (32 loc) · 1.83 KB

README.md

File metadata and controls

38 lines (32 loc) · 1.83 KB

FormsAuthentication

Enable ASP.NET Core 2 cookies to read old ASP.NET Forms Authentication cookies by implementing a custom ISecureDataFormat.

NuGet: NuGet Shield

Usage:

var section = Configuration.GetSection("FormsAuthentication");

var faOptions = new FormsAuthenticationOptions()
{
    DecryptionKey = section.GetValue<string>("DecryptionKey"),
    ValidationKey = section.GetValue<string>("ValidationKey"),
    EncryptionMethod = section.GetValue<EncryptionMethod>("EncryptionMethod"),
    ValidationMethod = section.GetValue<ValidationMethod>("ValidationMethod"),
};

services
    .AddAuthentication(options =>
    {
        options.DefaultAuthenticateScheme = CookieAuthenticationDefaults.AuthenticationScheme;
        options.DefaultChallengeScheme = CookieAuthenticationDefaults.AuthenticationScheme;
        options.DefaultSignInScheme = CookieAuthenticationDefaults.AuthenticationScheme;
    })
    .AddCookie(options =>
    {
        options.Cookie.Name = section.GetValue<string>("CookieName");
        options.AccessDeniedPath = "/Login/Upgrade/";
        options.LoginPath = "/Login/";
        options.ReturnUrlParameter = "returnurl";
        options.TicketDataFormat = new FormsAuthenticationDataFormat<AuthenticationTicket>(
            faOptions,
            FormsAuthHelper.ConvertCookieToTicket,
            FormsAuthHelper.ConvertTicketToCookie
            );
    });

The FormsAuthHelper.ConvertCookieToTicket and FormsAuthHelper.ConvertTicketToCookie helper methods convert an ASP.NET Core AuthenticationTicket to a FormsAuthenticationCookie and vise versa. This class contains the same data as a old ASPNET Cookie.