cookie在同一个域中居然能有相同的键值

Cookies

Cookies 集合允许用户检索在 HTTP 请求中发送的 cookie 的值。

语法

Request.Cookies(cookie)[(key)|.attribute] 
 

参数

cookie
指定要检索其值的 cookie。
key
可选参数,用于从 cookie 字典中检索子关键字的值。 
attribe
指定 cookie 自身的有关信息。其属性参数如下:
名称 说明
HasKeys 只读。指定 cookie 是否包含关键字。

注释

可以通过包含一个 key 值来访问 cookie 字典的子关键字。如果访问 cookie 字典时未指定 key,则所有关键字都会作为单个查询字符串返回。例如,如果 MyCookie 有两个关键字, First  Second ,而在调用 Request.Cookies时并未指定其中任何一个关键字,那么将返回下列字符串。

First=firstkeyvalue&Second=secondkeyvalue
 

如果客户端浏览器发送了两个同名的 cookie,那么 Request.Cookie 将返回其中路径结构较深的一个。例如,如果有两个同名的的 cookie,但其中一个的路径属性为 /www/ 而另一个为 /www/home/,客户端浏览器同时将两个 cookie 都发送到 /www/home/ 目录中,那么 Request.Cookie 将只返回第二个 cookie。

要确定某个 cookie 是不是 cookie 字典(cookie 有否有关键字),可使用下列脚本。

<%= Request.Cookies("myCookie").HasKeys %> 
 

如果 myCookie 是一个 cookie 字典,则前面的赋值为 TRUE。否则,为 FALSE。

可以通过循环遍历 Cookies 集合中的所有 cookie 或 cookie 中的所有关键字。但是,通过关键字在没有关键字的 cookie 上遍历将不产生任何输出。使用 HasKeys 语法先检查一下 cookie 是否有关键字,可以避免这种情况。下面的例子对此进行演示。

<% 
'Print out the entire cookie collection.
For Each cookie in Request.Cookies
  If Not cookie.HasKeys Then
    'Print out the cookie string 
%>
    <%= cookie %> = <%= Request.Cookies(cookie)%>
<%
Else
  'Print out the cookie collection
  For Each key in Request.Cookies(cookie)
%>
  <%= cookie %> (<%= key %>) = <%= Request.Cookies(cookie)(key)%>
<%
  Next 
End If
Next 
%> 
 

示例

下面的例子打印 Web 页中的 myCookie 的值。

这是名为 myCookie 的 cookie 值: 
<%= Request.Cookies("myCookie") %> 


所以会出现同名的cookie?



posted @   阿玛  阅读(2081)  评论(0编辑  收藏  举报
编辑推荐:
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
阅读排行:
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
· 字符编码:从基础到乱码解决
点击右上角即可分享
微信分享提示