Вход выполнен успешно, но авторизация не удалась ASP. NET CORE - PullRequest
0 голосов
/ 20 апреля 2020

Я добавил аутентификацию в мое основное приложение asp. net, как показано ниже

var authenticationBuilder = services.AddAuthentication(builder =>
{
   builder.DefaultAuthenticateScheme = CookieAuthenticationDefaults.AuthenticationScheme;
   builder.DefaultChallengeScheme = CookieAuthenticationDefaults.AuthenticationScheme;
});

authenticationBuilder.AddCookie(CookieAuthenticationDefaults.AuthenticationScheme, options =>
{
    options.AccessDeniedPath = "/Account/AccessDenied";
    options.Cookie.Name = $"{AppCookieDefaults.Prefix}{AppCookieDefaults.AuthenticationCookie}";
    options.Cookie.HttpOnly = true;
    options.ExpireTimeSpan = TimeSpan.FromMinutes(60);
    options.LoginPath = "/Account/Login";
    options.ReturnUrlParameter = CookieAuthenticationDefaults.ReturnUrlParameter;
    options.SlidingExpiration = true;
    options.Cookie.SecurePolicy = CookieSecurePolicy.Always;
    options.Cookie.SameSite = SameSiteMode.Lax;
});

Когда я попытался войти с помощью SignInManager PasswordSignInAsync, мой вход был успешным, но приложение все еще перенаправлялось на Страница входа в систему, когда я проверяю консоль, показывает

enter image description here

И кажется, что аутентификация cook ie также не переименована так, как я хотел.

enter image description here

Я не могу понять, что пошло не так

Обновление

Я добавил authenticationBuilder.AddIdentityCookies Вместо этого звоните AddCookie

Наверно, я думаю, что я что-то напутал при регистрации службы для информации, я буду обновлять здесь, это код, я регистрирую личность

services.AddIdentityCore<User>()
    .AddRoles<IdentityRole>()
    .AddUserManager<UserManager<User>>()
    .AddSignInManager()
    .AddEntityFrameworkStores<ApplicationDbContext>()
    .AddDefaultTokenProviders();

services.Configure<IdentityOptions>(options =>
{
   options.Password.RequireDigit = false;
   options.Password.RequireLowercase = false;
   options.Password.RequireNonAlphanumeric = false;
   options.Password.RequireUppercase = false;
   options.Password.RequiredLength = 6;
   options.Password.RequiredUniqueChars = 0;
   options.Lockout.DefaultLockoutTimeSpan = TimeSpan.FromMinutes(5);
   options.Lockout.MaxFailedAccessAttempts = 5;
   options.Lockout.AllowedForNewUsers = false;
   options.User.RequireUniqueEmail = true;
});

1 Ответ

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

ASP. NET Базовая идентификация будет включать промежуточное программное обеспечение аутентификации Cook ie на конвейере. Поэтому вам не нужно создавать отдельное промежуточное ПО для аутентификации Cook ie при использовании ASP. NET Core Identity.

Если вы хотите настроить параметры повара ie, вы можете настроить повара приложения ie в Startup.ConfigureServices. ConfigureApplicationCookie должен быть вызван после вызова AddIdentity или AddDefaultIdentity.

services.ConfigureApplicationCookie(options =>
{
    options.AccessDeniedPath = "/Account/AccessDenied";
    options.Cookie.Name = $"{AppCookieDefaults.Prefix}{AppCookieDefaults.AuthenticationCookie}";
    options.Cookie.HttpOnly = true;
    options.ExpireTimeSpan = TimeSpan.FromMinutes(60);
    options.LoginPath = "/Account/Login";
    options.ReturnUrlParameter = CookieAuthenticationDefaults.ReturnUrlParameter;
    options.SlidingExpiration = true;
    options.Cookie.SecurePolicy = CookieSecurePolicy.Always;
    options.Cookie.SameSite = SameSiteMode.Lax;
});

Пожалуйста, обратитесь к Настройка ASP. NET Базовая идентификация для получения более подробной информации.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...