Итак,
Я захожу в аккаунт, используя
await _signInManager.SignInAsync(user, true);
Позволяет войти без пароля - в основном Force.
затем через некоторое время я собираюсь войти в форму, заполнив поля логин / пароль, отправив POST и войдя в систему с помощью этого кода:
var result = await _signInManager.PasswordSignInAsync(input.UserName, input.Password, false, lockoutOnFailure: true);
Оценивается как true
но по какой-то причине я все еще не авторизован.
Я понял, что когда я удаляю этот файл cookie:
Тогда все работает правильно.
Итак, я хотел выполнить «взлом» и, возвращая 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;
});
У кого-нибудь есть идеи, как заставить это работать?