Переименуйте файл cookie TwoFactorUserId в ядре asp.net 2.1 - PullRequest
0 голосов
/ 01 июня 2018

В asp.net core 1.1 вы смогли установить имя файла cookie TwoFactorUserId со следующим кодом, но как это сделать в v2.0 / 2.1?

services.AddIdentity<ApplicationUser, ApplicationRole>(options =>
{
options.Cookies.TwoFactorUserIdCookie.CookieName = "cookieName";
})
.AddEntityFrameworkStores<ApplicationDbContext>()
.AddDefaultTokenProviders();

1 Ответ

0 голосов
/ 02 июня 2018

Я нашел решение: https://forums.asp.net/t/2128896.aspx?Two+factor+cookie+options+in+ASP+Core+2+0

Кажется, много работы просто по изменению имени файла cookie 2FA, но это единственное решение, которое я нашел.Если есть более простой способ, пожалуйста, дайте мне знать ...

Если у кого-то еще есть эта проблема, вам, в основном, нужно заменить схемы Identity по умолчанию, поэтому вам нужно заменить ваши службы. Конфигурация AddIdentity на:

        var builder = services.AddIdentityCore<ApplicationUser>(options =>
        {
            //options.Stores.MaxLengthForKeys = 128;
            //options.SignIn.RequireConfirmedEmail = true;
        }
        );
        builder = new IdentityBuilder(builder.UserType, typeof(ApplicationRole), builder.Services);
        builder.AddRoleValidator<RoleValidator<ApplicationRole>>();
        builder.AddRoleManager<RoleManager<ApplicationRole>>();
        builder.AddSignInManager<SignInManager<ApplicationUser>>();
        builder.AddEntityFrameworkStores<ApplicationDbContext>().AddDefaultTokenProviders();

Затем добавьте схемы идентификации:

  services.AddAuthentication(options =>
    {
        options.DefaultAuthenticateScheme = IdentityConstants.ApplicationScheme;
        options.DefaultChallengeScheme = IdentityConstants.ApplicationScheme;
        options.DefaultSignInScheme = IdentityConstants.ExternalScheme;
    })
          .AddCookie(IdentityConstants.ApplicationScheme, o =>
          {
              o.Cookie.Name = "appCookie";
              o.LoginPath = new PathString("/account/login");
              o.LogoutPath = new PathString("/account/logout");
              o.AccessDeniedPath = new PathString("/account/accessdenied");
          })
        .AddCookie(IdentityConstants.ExternalScheme, o =>
        {
            o.Cookie.Name = "externalCookie";
        })
        .AddCookie(IdentityConstants.TwoFactorRememberMeScheme, o =>
        {
            o.Cookie.Name = "2faCookie";
        })
        .AddCookie(IdentityConstants.TwoFactorUserIdScheme, o =>
        {
            o.Cookie.Name = "2faUserIdCookie";
        }); ;
...