Пользователь вошел в систему под учетной записью «А» через личность
signInManager.PasswordSignInAsync(UserName, Password, false, lockoutOnFailure: true);
Вот так я выполняю выход из системы
await signInManager.SignOutAsync();
, и он работает нормально, но когда я хочу "выбросить "текущего пользователя на другой аккаунт - аккаунт" B "
await signInManager.SignInAsync(user, true);
, тогда он не работает, пользователь все еще находится на своем" предыдущем "аккаунте" A "
Даже если я выполняю
await _signInManager.SignOutAsync();
await signInManager.SignInAsync(user, true);
тогда мой пользователь все еще находится в своей "предыдущей" учетной записи "A".
В целом это странно, потому что это работало в течение последних X месяцев, и я понятия не имею, что не так, потому чтоошибки нет.
В основном использование
await _signInManager.SignOutAsync();
работает корректно, но при использовании со входом - нет.
Даже выполнение
foreach (var cookie in Request.Cookies.Keys)
{
Response.Cookies.Delete(cookie);
}
до входа в систему не помогает
Редактирование
Вот как я могу зарегистрировать и настроить идентификатор:
services.AddEditedDefaultIdentity<User>
(
o =>
{
o.Password.RequireDigit = true;
o.Password.RequireLowercase = true;
o.Password.RequireUppercase = true;
o.Password.RequireNonAlphanumeric = true;
}
)
.AddSignInManager()
.AddEntityFrameworkStores<Context>();
services.ConfigureApplicationCookie(options =>
{
options.AccessDeniedPath = "/Login";
options.Cookie.Name = "MyApp";
options.Cookie.HttpOnly = true;
options.ExpireTimeSpan = TimeSpan.FromMinutes(600);
options.LoginPath = "/Login";
options.LogoutPath = "/Logout";
options.ReturnUrlParameter = CookieAuthenticationDefaults.ReturnUrlParameter;
options.SlidingExpiration = true;
});
public static IdentityBuilder AddEditedDefaultIdentity<TUser>(this IServiceCollection services, Action<IdentityOptions> configureOptions) where TUser : class
{
services.AddAuthentication(o =>
{
o.DefaultScheme = IdentityConstants.ApplicationScheme;
o.DefaultSignInScheme = IdentityConstants.ExternalScheme;
})
.AddIdentityCookies(o => { });
return services.AddIdentityCore<TUser>(o =>
{
o.Stores.MaxLengthForKeys = 128;
configureOptions?.Invoke(o);
})
.AddDefaultTokenProviders();
}