如何在 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 应用程序的浏览器上禁用按钮关闭?的主要内容,如果未能解决你的问题,请参考以下文章

如何禁用浏览器后退按钮..? [复制]

禁用在 android 上显示 Paypal Web 浏览器

关闭或禁用ie浏览器怎么操作啊?

WINFORM如何去掉窗体上的关闭按钮?

c#如何单击按钮显示另一个窗体?

如何暂时禁用我的 iPhone 应用程序安排的所有本地通知?