Веб-приложение ASP.NET Core 6 MVC: невозможно выйти из системы ⇐ C#
-
Anonymous
Веб-приложение ASP.NET Core 6 MVC: невозможно выйти из системы
Я не могу выйти из системы, и мой User.Identity.IsAuthenticated по-прежнему показывает значение «истина» даже после выполнения действия выход из системы.
Мой файл Program.cs выглядит вот так
builder.Services.AddAuthentication(NegotiateDefaults.AuthenticationScheme) .AddNegotiate() .AddCookie("Файлы cookie", options => { options.Cookie.Name = "Тест"; options.ExpireTimeSpan = TimeSpan.FromMinutes(30); }); builder.Services.AddAuthorization(опции => { // По умолчанию все входящие запросы будут авторизованы в соответствии с политикой по умолчанию. options.FallbackPolicy = options.DefaultPolicy; }); А действие Выход выглядит следующим образом:
[AllowAnonymous] публичная асинхронная задача Выход из системы() { если (HttpContext.Request.Cookies.Count > 0) { вар siteCookies = HttpContext.Request.Cookies .Where(c => c.Key.Contains(".AspNetCore.") || c.Key.Contains("Microsoft.Authentication")); foreach (var cookie в siteCookies) { Response.Cookies.Delete(cookie.Key); } } ждут HttpContext.SignOutAsync(CookieAuthenticationDefaults.AuthenticationScheme); HttpContext.Session.Clear(); HttpContext.User = новый ClaimsPrincipal (новый ClaimsIdentity (новый список ())); return RedirectToAction("Вход", "Домой"); }
Я не могу выйти из системы, и мой User.Identity.IsAuthenticated по-прежнему показывает значение «истина» даже после выполнения действия выход из системы.
Мой файл Program.cs выглядит вот так
builder.Services.AddAuthentication(NegotiateDefaults.AuthenticationScheme) .AddNegotiate() .AddCookie("Файлы cookie", options => { options.Cookie.Name = "Тест"; options.ExpireTimeSpan = TimeSpan.FromMinutes(30); }); builder.Services.AddAuthorization(опции => { // По умолчанию все входящие запросы будут авторизованы в соответствии с политикой по умолчанию. options.FallbackPolicy = options.DefaultPolicy; }); А действие Выход выглядит следующим образом:
[AllowAnonymous] публичная асинхронная задача Выход из системы() { если (HttpContext.Request.Cookies.Count > 0) { вар siteCookies = HttpContext.Request.Cookies .Where(c => c.Key.Contains(".AspNetCore.") || c.Key.Contains("Microsoft.Authentication")); foreach (var cookie в siteCookies) { Response.Cookies.Delete(cookie.Key); } } ждут HttpContext.SignOutAsync(CookieAuthenticationDefaults.AuthenticationScheme); HttpContext.Session.Clear(); HttpContext.User = новый ClaimsPrincipal (новый ClaimsIdentity (новый список ())); return RedirectToAction("Вход", "Домой"); }
Мобильная версия