注销 mvc 中打开的页面

Posted

技术标签:

【中文标题】注销 mvc 中打开的页面【英文标题】:Logout Opened pages in mvc 【发布时间】:2017-02-08 12:06:31 【问题描述】:

我有一个 mvc web 应用程序,当用户在不同的选项卡中打开页面并单击特定页面中的注销按钮时,它将注销所有打开的相关页面。我尝试注销并重定向到登录,但仅在该页面上。

当用户单击特定页面中的注销按钮时,我如何注销其他选项卡中所有打开的页面。

谢谢。

【问题讨论】:

您的注销机制是什么?会话过期?或清除创建的cookies?在帖子中更新 我设置了一个空闲时间来注销。它将清除会话和 cookie。 您可以尝试使用 ajax 或 WebSocket 进行轮询,例如使用SignalR实时更新认证状态。但 IMO 的工作量和开销太大。 您打算使用您的 C# 控制器代码或其他任何东西来制作此注销机制? 在 c# 中是的,尤其是在控制器中。如果用户单击注销按钮,我想注销所有打开的页面。 【参考方案1】:

我认为您混淆了服务器端和客户端代码。您的 C# 代码无法访问用户的浏览器 - 因此您将无法通过这种方式注销其他选项卡。

如果您使用 cookie 来存储身份验证信息,您可以添加一个 javascript 函数来循环检查此 cookie,但我认为这不是一个好主意(性能方面、不必要的负载等)。检查控制器上的适当权限应该绰绰有余。

您还可以使用 html5 本地存储和事件,like so。

【讨论】:

以上是关于注销 mvc 中打开的页面的主要内容,如果未能解决你的问题,请参考以下文章

Asp.net MVC 5 视图在使用 F5 重新加载页面之前不呈现

当用户注销其中一个标签时,如何自动从所有打开的标签中注销用户?

ASP.net 2.2 MVC:注销

如何将 MVC5 RedirectResult () 重定向到 Asp.net 中的整页?

微软身份提供者和 .net 核心的注销重定向 url (5) MVC

当用户注销 php 中打开的选项卡之一时,自动注销所有打开的选项卡