通过解析工具在 ASP.NET 中使用逗号分隔的 cookie

  • Anand Narayanaswamy
  • 姚琪琳

2012 年 11 月 14 日

话题:语言 & 开发

如果你查看System.Web.HttpRequest类的源代码就会发现,ASP.NET 不支持以逗号为分隔符的 cookie。你必须使用分号才能处理 cookie。

但是,W3C 的 HTTP 状态管理机制文档(RFC2309)中规定,分号和逗号都是有效的 cookie 键分隔符。只不过开发者通常都使用分号而已。

为了在 ASP.NET 中实现以逗号为分隔符的 cookie,你需要创建工具来模拟 ASP.NET,从而以逗号(而非分号)来解析 cookie。创建解析工具的步骤如下:

  • 创建处理所有请求的 HttpModule 类
  • 检查 cookie 头中的逗号
  • 解析 cookie,并将其提取到集合中

Match.com 的软件工程师Keyvan Nayyeri在其解析工具中实现了上述步骤。据 Keyvan 说,如果 cookie 的值中包含逗号,该解析工具将无法工作,同时,开发者可以在Fiddler中测试该模块。

查看英文原文http://www.infoq.com/news/2012/11/comma-delimited-cookies-aspnet


感谢侯伯薇对本文的审校。

给 InfoQ 中文站投稿或者参与内容翻译工作,请邮件至editors@cn.infoq.com。也欢迎大家通过新浪微博(@InfoQ)或者腾讯微博(@InfoQ)关注我们,并与我们的编辑和其他读者朋友交流。

语言 & 开发