Asp Net Основные проблемы с аутентификацией - PullRequest
0 голосов
/ 09 апреля 2020

Я сделал asp net базовое веб-приложение с Angular. Он использует аутентификацию на основе файлов cookie с использованием стандартного механизма аутентификации ядра net Все работает нормально, пока IIS не перезапустится (перезапустится). После перезапуска приложения все пользователи становятся не прошедшими проверку подлинности и требуют повторной регистрации.

Возможно, кто-то знает, что нужно сделать, чтобы информация, хранящаяся в файлах cookie, была действительной в течение нескольких дней и не зависела от перезапуска приложения.

Это кусок кода

public void ConfigureServices(IServiceCollection services)
{
  services.AddDbContext<MyAppContext>(options => options.UseMySql(connectionString));
  services.AddIdentity<ApplicationUser, ApplicationRole>(options =>
  {
    options.User.RequireUniqueEmail = true;
    options.SignIn.RequireConfirmedEmail = true;
  })
  .AddEntityFrameworkStores<MyAppContext>()
  .AddDefaultTokenProviders();

  services.AddAuthorization();
  services.AddAuthentication(CookieAuthenticationDefaults.AuthenticationScheme)
       .AddCookie(options =>
       {
          options.SlidingExpiration = true;
          options.ExpireTimeSpan = System.TimeSpan.FromDays(7);
          options.LoginPath = $"/Identity/Login";
          options.LogoutPath = $"/Identity/Logout";
          options.Cookie.IsEssential = true;
       });
}

public void Configure(IApplicationBuilder app, IWebHostEnvironment env, ILoggerFactory loggerFactory)
{
    app.UseHttpsRedirection();
    app.UseStaticFiles();
    app.UseSpaStaticFiles();

    app.UseRouting();

    app.UseAuthentication();
    app.UseAuthorization();
}

1 Ответ

0 голосов
/ 09 апреля 2020

Asp. Net Ядро использует механизм Data Protection для генерации временного encryption keys. и при перезапуске сервера или IIS эти ключи теряются и re-generated.

. Чтобы ключи для шифрования информации веб-приложения сохранялись постоянно и не терялись при перезапуске сервера, вы можете * От 1030 * до Application pool установка в IIS и установка Load user profile в True

enter image description here

В этом случае ключи будут постоянно хранится в папке профиля пользователя для application pool приложения, зашифрованного с помощью механизма Windows DPAPI.

Или вы можете проверить эти ссылки 1 , 2 сохранить статус входа после iis сброс

...