asp.net - 识别唯一的浏览器/选项卡实例,例如用户在 mysite.com 上打开了 2 个选项卡 - 分别识别

标签 asp.net .net browser identify

我已阅读this以及过去几天的许多其他链接。

问题是我需要为用户为 mysite.com 打开的每个选项卡或浏览器提供唯一标识符(示例网站名称)

我无法使用唯一的 session ,就像当我打开 mysite.com 并有例如在 session 中选择了“carrots”,那么 mysite.com 的所有其他选项卡/浏览器现在在特定 session 值中都有“carrots”。

但是服务器显然仍然唯一地标识每个浏览器/选项卡。有没有一种方法可以获取这个唯一的浏览器/选项卡 ID,或者创建一个唯一的浏览器/选项卡 ID?

我并不是指通过 JavaScript 自己生成唯一的 ID,我在 StackOverflow 上看到了一些很好的例子。问题是我需要在每个母版页上实现它并在母版页/非母版页之间携带它。也用于例如在我的例子中,它不起作用,因为我可以打开浏览器,如果我在几个页面上运行它 20 次,它会生成 20 个不同的 ID,例如当我无法跨端口传输值时。

所以,请不要浪费大家的时间,这不是一个随机的 GUID 创建问题,这个问题涉及为每个选项卡/浏览器获取唯一的可重新创建 ID(如果丢失),最好通过到服务器的链接进行识别.

最佳答案

这是您谈到的一个大话题。 如果您只需要在表单提交期间保留 ID,则可以采用客户端 window.name 属性的方法并使用 window.onload 传播具有该值的隐藏字段。 但是,当用户点击超链接(单击网站上的链接)时,这将不起作用。 onload:检查window.name是否设置;如果未设置,则分配一个 GUID。如果设置,请设置隐藏字段=window.name。因此,在提交时,您的表单将包含带有 window.name GUID 的隐藏字段。

您还可以使用 HTML5 window.sessionStorage,它可以解决您的所有问题,但不适用于较旧的浏览器。

如果您需要支持向后浏览器和非提交类型,那么您将需要在客户端编写一些相当复杂的 cookie/ session 管理。不漂亮。希望以上 2 点就足够了。

关于asp.net - 识别唯一的浏览器/选项卡实例,例如用户在 mysite.com 上打开了 2 个选项卡 - 分别识别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14558912/

相关文章:

c# - 基于 .net ComputeHash 的 SQL CLR 函数不适用于 Cyrillic

Android 默认浏览器为响应式设计创建水平滚动条

javascript - (Javascript)所有浏览器的 "navigator.appName"值列表?

javascript - 如何在 JavaScript 正则表达式中允许正斜杠 (/)

Asp.Net Mvc 复选框列表

ASP.NET : The compiler failed with error code -532462766

c# - 为什么即使没有更新,ExecuteNonQuery 也会返回 1?

.net - 将 GridView 绑定(bind)到 Dynamic 或 ExpandoObject 对象

ios - Ipad 上网络浏览器中的 3D

c# - 在 ASP.NET MVC 中存储全局对象