gpt4 book ai didi

c# - ASP.NET : How to prevent opening same site a few times in parallel?

转载 作者:太空宇宙 更新时间:2023-11-03 11:25:48 25 4
gpt4 key购买 nike

我是 ASP 的新手,我遇到过最糟糕的开发人员噩梦:我收到了被解雇的大型 ASP.NET 项目,我必须对其进行一些更改。其中一项更改是防止在一次 Active Directory 登录时多次打开同一站点(不同的选项卡、浏览器等...)正如我注意到该应用程序正在使用 session 。使用 session 来防止同一站点的多个实例有什么想法吗?

最佳答案

这是一个想法。使用带有 GUID 的隐藏字段,该字段将由服务器为每次页面加载随机生成。当请求到达服务器时,它会检查 GUID 是否是上次生成的。如果它不同或为空(当 session 处于事件状态时)- 重定向到某个页面说访问被拒绝(此处没有新的 GUID)。如果正确,则提供请求的页面。这样做的小问题是,如果有人关闭浏览器并重新打开它,他/她在尝试再次使用您的应用程序时将被拒绝访问。为了最大限度地减少您需要将 session 超时降低到 1 分钟并使用 AJAX asp:Timer 来保持 session 事件。请记住将 keep alive 调用(以及任何其他 AJAX 调用)排除在 GUID 生成/验证管道之外。当然, session 结束会重置该过程。鼓励用户正确注销也是一件好事。

虽然它的保护级别比永久连接弱,但这是实现起来相对简单的解决方案。不过,对于非技术最终用户来说应该足够了——取决于你的“听众”。但即使对于了解该机制的人来说,使用两个应用程序“实例”也会变得非常困难。

如果你真的需要,就去做吧。总的来说,我同意 Marc 的观点,即不应以这种方式限制网络应用程序。或许是受过教育的人的要求吧?

关于c# - ASP.NET : How to prevent opening same site a few times in parallel?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9392180/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com