如何在 Web 应用程序的浏览器上禁用按钮关闭?
Posted
技术标签:
【中文标题】如何在 Web 应用程序的浏览器上禁用按钮关闭?【英文标题】:How To Disable Button Close On Browser For Web Application? 【发布时间】:2011-09-21 21:53:12 【问题描述】:我有基于应用程序 Web 的 ASP.Net Framework 1.0,为了安全,我希望浏览器(即,firefox、opera 等)中的按钮关闭 (X) 被禁用,并且任何事情都会使浏览器退出,用户只能通过我的菜单注销退出浏览器。
请帮帮我
提前致谢
问候, 尤桑·苏珊迪。
【问题讨论】:
顺便问一下:你也想防止用户拔掉AC插头吗? 为什么投反对票?完全合理的问题,并且足够清楚。 【参考方案1】:你不能这样做,对不起。您必须实现服务器端超时机制等。您可以将其设置为相当短的超时并在幕后使用 ajax 请求来保持会话处于活动状态,但您不能阻止浏览器关闭。
实际上,您无论如何都不想依赖这样做,因为浏览器可能会崩溃而不是关闭,计算机可能会被拔掉电源而不是正常关闭等等,所有这些都无需您的服务器被通知。所以你必须处理人们可能突然消失的事实无论如何。
对于正常用例,您可以鼓励您的用户使用退出链接而不是使用 javascript:
<script>
window.onbeforeunload = function()
if (loggedIn)
return "Please cancel and use the Logout link instead";
;
</script>
...这会在大多数(但不是所有)浏览器上唠叨他们,但你不能让他们这样做。
【讨论】:
即使您可以这样做,这也是一个非常糟糕的主意,您实际上会将网站的“安全性”留给浏览器的实施 @Daniel:是的,另请参阅我的第二段 - 甚至不仅仅是浏览器的实现,但人们可能会绊倒电源线,当然浏览器可能崩溃 以及很好地关闭。 :-) 如果我重定向到其他页面,此通知始终为真/显示,我的 Web 应用程序没有母版页,所以有其他方法吗?请帮帮我……坦克 @Yusan:您只需在导航代码中处理它,例如,设置一个变量来抑制消息。那是如果您真的认为该信息是值得的;如果你的超时机制正常工作,并且你训练人们退出,你真的需要唠叨吗?我的意思是,用户也可以在登录时站起来离开计算机。这也是一个安全问题,除非通过用户培训,否则无法克服(尽管有些系统使用面部识别来锁定工作站如果该人离开;那是在操作系统级别)。 我明白你指的是,但我需要更多关于代码的解释更详细,谢谢 Mr.TJ Crowder以上是关于如何在 Web 应用程序的浏览器上禁用按钮关闭?的主要内容,如果未能解决你的问题,请参考以下文章