注销 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 重新加载页面之前不呈现
当用户注销其中一个标签时,如何自动从所有打开的标签中注销用户?
如何将 MVC5 RedirectResult () 重定向到 Asp.net 中的整页?