gpt4 book ai didi

asp.net - 在 ASP.NET(服务器端)中,如何从同一基于 cookied 的 sessionId 下的另一个浏览器窗口中唯一标识一个浏览器窗口

转载 作者:行者123 更新时间:2023-12-02 10:55:13 25 4
gpt4 key购买 nike

我的 Web 应用程序的用户可能会打开多个浏览器窗口(或选项卡)并指向同一页面。我们使用基于 cookie 的 session ID,并且用户通常会在两个浏览器/选项卡中使用相同的 session ID 进行工作。我希望能够唯一地标识请求 ASP.NET 页面的浏览器窗口(和选项卡)(以确保 session 中存储的数据不会混淆)。

(例如,如果浏览器能够生成并发送带有 http 请求的 window/tab-id,我会很高兴,因为它发布了 HTTP_USER_AGENT)

有什么想法吗?

--托马斯

最佳答案

如果我要实现这样的东西,我可能会从 Dictionary<Type, List<Guid>> 开始并将其存储在用户 session 中。我也可能会将其设为委托(delegate)字典的自定义类型,并具有类似于的工厂方法

public Guid GeneratePageIdentifier(Page thepage)
{
var guid = Guid.New();

if(_dictionary[thepage.GetType()] == null)
_dictionary[thepage.GetType()] = new List<Guid> { guid };
else
((List<Guid>)_dictionary[thepage.GetType()]).Add(guid);

return guid;

}

然后将从该方法返回的 guid 嵌入到页面的 VIewState 上。在执行验证页面所需操作的页面方法上,您将能够验证 guid 在集合中执行某些操作。您可能还想实现一个带有 guid 属性的自定义 a 类型,以封装有关您为何执行此操作或需要什么才能使其有意义的更多信息。

关于asp.net - 在 ASP.NET(服务器端)中,如何从同一基于 cookied 的 sessionId 下的另一个浏览器窗口中唯一标识一个浏览器窗口,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2162122/

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