asp.net-identity - IdentityServer4 - 谷歌浏览器没有删除所有 cookie
问题描述
我有客户端应用程序尝试注销并将用户重定向到经过身份验证的页面,这应该强制用户再次登录。
但是在重定向到安全页面之后不知何故。IDP 响应用户已通过身份验证并且存在循环。我的逻辑检测到不正确的用户,强制注销,用户注销,当他尝试打开链接 ipd 时告诉他已通过身份验证。
要注销我正在使用这个:
return SignOut(new AuthenticationProperties { RedirectUri = Request.GetDisplayUrl() }, OpenIdConnectDefaults.AuthenticationScheme);
解决方案
您需要使用注销两个处理程序(cookie + OpenID)
public async Task Logout()
{
await HttpContext.SignOutAsync(CookieAuthenticationDefaults.AuthenticationScheme);
await HttpContext.SignOutAsync(OpenIdConnectDefaults.AuthenticationScheme);
}
此外,重要的是不要从您的注销中返回任何内容,否则事情会中断。
推荐阅读
- swift - validateMenuItem 不为每个菜单项调用
- python - 如何在 3 维中实现三次样条插值?
- reactjs - Graphql onCreate Subscription 多次触发
- rdlc - Visual Studio 2015 RDLC 表格单元格中的文本在预览中看起来很好,但在打印时溢出
- c# - 如何同时运行 SqlDataReader 和 SqlDataAdapter?
- node.js - 从网络服务器向游戏服务器发送请求时出错
- c# - 如何为 await _propertyRepository.UnitOfWork.SaveEntitiesAsync() 创建 xUnit 测试用例?
- python - 如何在一个简单的 wsgi 应用程序中响应 ajax?
- javascript - 如何在 React Native 中处理依赖循环
- flutter - 有没有办法在没有用户交互的情况下发送短信?