asp.net - 防止多个用户同时访问一个页面

标签 asp.net jquery security

防止页面上出现多个用户的最佳方法是什么?

例如,如果用户位于“Home.aspx”页面,则不应允许其他用户访问该页面。

我在服务器上使用 asp.net,在客户端使用 js-frameword jQuery。

最佳答案

最简单的部分是只允许一个用户访问一个页面。例如,您可以将 session ID 存储在应用程序变量中,以跟踪页面上的人员。

困难的部分是知道用户何时离开页面。 HTTP 协议(protocol)只处理请求,因此服务器只知道用户何时进入页面。协议(protocol)中没有“位于”页面上的概念。

您可以在客户端代码中使用 onunload 事件来捕获用户何时前往其他地方,但这并不总是有效。如果用户失去互联网连接,则无法将用户离开页面的信息传回服务器。如果浏览器或者电脑崩溃了,自然不会有onunload事件。

您可以继续向服务器请求数据,例如重新加载页面上的图像。这样服务器就可以以一定的时间间隔知道用户是否仍在该页面上。但是,如果用户失去互联网连接,服务器会认为用户已经离开,而用户则认为他/她仍在页面上。

另一个问题是浏览器历史记录和缓存。用户可能会离开该页面,然后再次返回该页面。您必须确保该页面没有被缓存,否则浏览器将只使用缓存的页面,而服务器不知道用户认为他/她再次在该页面上。

关于asp.net - 防止多个用户同时访问一个页面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3590108/

相关文章:

jquery - 如何使 jquery 移动加载器中 ui-loader 的宽度更宽?

ruby-on-rails - 在用户数据库中包含帐户信息

c# - 在 ASP.NET 中键入时显示搜索结果

asp.net - 在 ASP.NET 中获取服务器名称的不同方法

javascript - 谷歌地图 + 重叠标记蜘蛛侠

jquery - phonegap + jquery 移动示例的来源

security - 是否在 golang 中缓冲了 http.Request.Body?

android - 为什么 getHttpSocketFactory 已被弃用,什么替代了它?

asp.net - asp.net mvc3错误消息

c# - T-SQL LIKE与ASP.net参数中的通配符