Идентификация: после «force» -account-login (без предоставления пароля) нормальная регистрация в пути (с паролем) перестает работать - PullRequest
0 голосов
/ 11 января 2019

Итак,

Я захожу в аккаунт, используя

await _signInManager.SignInAsync(user, true);

Позволяет войти без пароля - в основном Force.

затем через некоторое время я собираюсь войти в форму, заполнив поля логин / пароль, отправив POST и войдя в систему с помощью этого кода:

var result = await _signInManager.PasswordSignInAsync(input.UserName, input.Password, false, lockoutOnFailure: true);

Оценивается как true

но по какой-то причине я все еще не авторизован.

Я понял, что когда я удаляю этот файл cookie:

enter image description here

Тогда все работает правильно.

Итак, я хотел выполнить «взлом» и, возвращая LoginFormView, добавил это в метод контроллера

await _signInManager.SignOutAsync();
foreach (var cookie in Request.Cookies.Keys)
{
    if (cookie == "MyApp")
    {
        Response.Cookies.Delete("MyApp");
        Response.Cookies.Append("MyApp", "", new CookieOptions { HttpOnly = true, Expires = new DateTimeOffset(new DateTime(1970, 1, 1)) });
    }
}

Но это не решает мою проблему.

Это мой файл cookie

services.ConfigureApplicationCookie(options =>
{
    options.AccessDeniedPath = "/Login";
    options.Cookie.Name = "MyApp";
    options.LoginPath = "/Login";
    options.LogoutPath = "/Logout";
    options.Cookie.Path = "/";
    options.Cookie.HttpOnly = true;
    options.ExpireTimeSpan = TimeSpan.FromMinutes(600);
    options.ReturnUrlParameter = CookieAuthenticationDefaults.ReturnUrlParameter;
    options.SlidingExpiration = true;
});

У кого-нибудь есть идеи, как заставить это работать?

...