我已阅读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/