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?
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 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语句:使用策略模式优化代码结构
· 字符编码:从基础到乱码解决