Приложение ASP.NET Core 2.1 не читает общий cookie в определенном сценарии - PullRequest
0 голосов
/ 17 ноября 2018

У меня 2 приложения

  • Приложение A
  • Приложение Б

Я сталкиваюсь с этой проблемой:

  1. Запустить приложение A и B,
  2. Войдите в приложение B, а затем обновите приложение A
  3. Приложение A остается на странице входа в систему
  4. Попробуйте войти в приложение A, получить перенаправление на страницу входа (неправильно) хотя отладчик показывает, что его успешно

Я могу войти, если я сделаю это:

  1. Запустить приложение A и B
  2. Войдите в приложение A, а затем обновите экран приложения B
  3. Приложение B перенаправлено на домашнюю страницу (правильно)

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

Это моя конфигурация, используемая в обоих стартапах

services.Configure<CookiePolicyOptions>(options =>
{
    // This lambda determines whether user consent for non-essential cookies is needed for a given request.
    options.CheckConsentNeeded = context => false;
    options.MinimumSameSitePolicy = SameSiteMode.None;
});

services.Configure<IdentityOptions>(options =>
{
    options.Password.RequireDigit = false;
    options.Password.RequireLowercase = false;
    options.Password.RequireNonAlphanumeric = true;
    options.Password.RequireUppercase = true;
    options.Password.RequiredLength = 6;
    options.User.AllowedUserNameCharacters =
    "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789-._@+";
    options.User.RequireUniqueEmail = false;
    options.SignIn.RequireConfirmedEmail = false;
    options.SignIn.RequireConfirmedPhoneNumber = false;
});

services.AddDataProtection()
    .PersistKeysToFileSystem(KeyRingConfigurationManager.GetBasePath())
    .SetApplicationName("Unity");

services.ConfigureApplicationCookie(options =>
{
    // Cookie settings
    options.Cookie.Name = ".Unity.Shared";
    options.Cookie.SameSite = SameSiteMode.Lax;
    options.Cookie.SecurePolicy = CookieSecurePolicy.SameAsRequest;
    options.Cookie.Path = "/";
    options.Cookie.Domain = "localhost";
    options.Cookie.HttpOnly = true;
    options.ExpireTimeSpan = TimeSpan.FromMinutes(5);

    options.LoginPath = "/Identity/Account/Login";
    options.AccessDeniedPath = "/Account/AccessDenied";
    options.SlidingExpiration = true;
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...