如何在ASP.NET Core cookie身份验证中注销所有用户?

Nee*_*ack 7 asp.net asp.net-core-mvc asp.net-core

我正在使用带有CookieAuthentication的ASP.NET Core MVC.有没有办法可以立刻签署所有用户?我尝试重置IIS - 没有用.我尝试删除所有用户的会话(我使用数据库进行会话存储) - 没有用.

有任何想法吗?

Joh*_* Wu 3

使用 CookieAuthentication,cookie 只是一个包含用户名、角色和辅助数据的加密字符串。简而言之,它识别用户,而不是会话。 终止会话并不会使 cookie 失效。

也就是说,您可以在 cookie 的辅助数据中填充会话标识符或其他令牌,然后在身份验证过程中对其进行验证。可以在此处找到有人尝试这样做的示例。

另一种选择是,您可以暂时禁用用户存储库中的用户,而不是使会话失效。 以下是使用 ASPNET Identity 2.0 的示例。

第三个(核心)选项是更改所有 Web 服务器上的机器密钥,这将使任何旧表单身份验证 cookie 不可读,迫使所有用户重新登录。