我希望使用asp.net和c#在同一个浏览器中为不同的选项卡创建和维护不同的cookie。我想要创建只允许一个选项卡访问的cookie。如果使用另一个选项卡发出另一个请求,那么它将被视为该选项卡的新请求,并为该新选项卡创建cookie。
因此,我希望在同一个浏览器中为所有选项卡提供唯一的cookie。我如何使用C#代码来做到这一点呢?
发布于 2013-06-26 22:26:34
我认为您无法告诉浏览器“只读取此页在此选项卡中的此cookie”,以及“仅在此另一选项卡中为同一页读取该其他cookie”。您可能需要读取页面的每个实例(即每个不同的选项卡)的所有cookie,然后在cookie本身中使用某种标识符来决定在特定情况下使用哪一个。
--一个总体想法:
如果您可以向cookie添加一个容易读的“键”,那么您可以遍历所有这些“键”,并且只能使用来自cookie的值,其中的键与页面中的一个键相匹配。
服务器可以为每个新请求生成页面中的键。您可以将其存储在“隐藏”类型的输入字段中(或者可能在viewstate存储中?)。
发布于 2017-03-06 13:19:42
在javascript中,只有当您已经在路径上设置cookie时,才能按路径设置cookie:
如果您在www.yourwebsite.com/firstTab
,您可以设置这个cookie:
document.cookie = "myField=blah;expires=10/10/2020;path=/firstTab";
如果您在www.yourwebsite.com/secondTab
,您可以设置这个cookie:
document.cookie = "myField=blah2;expires=10/10/2020;path=/secondTab";
如果您转到/firstTab
并执行document.cookie
,您只会看到myField=blah
,如果在/secondTab
中做同样的操作,则只会看到myField=blah2
。下面是 javascript的W3Schools教程。
如果您想要包含从C#传递的信息,只需将其添加到一个隐藏字段中,并使用javascript从其中获取。
警告
如果您的选项卡带您到不同的路径,那么这是可行的。但是,如果您只使用散列,那么它将无法工作,因为哈希不是路径的一部分。您可以在document.location
中看到这一点。您必须在选项卡之间共享cookie,并自己解析这些值。
https://stackoverflow.com/questions/17335418
复制相似问题