c# - 如何使cookie提取区分大小写
问题描述
假设客户端有 2 个 cookie 条目:
cookieExample1 = 1
cookieExaMPLE1 = 2
在后端,我使用以下代码:
var value1 = HttpContext.Current.Request.Cookies["cookieExample1"].Value;
logger.Info(value1); //result: 1
var value2 = HttpContext.Current.Request.Cookies["cookieExaMPLE1"].Value;
logger.Info(value2); //result: 1
我的问题是:如何使 cookie 值提取区分大小写?我已经修改了现有应用程序中 cookie 设置名称的大小写,但我仍然得到与以前名称关联的旧值。
解决方案
通过使用HttpContext.Current.Request.Cookies["cookieExaMPLE1"].Value
,您将始终获得具有此不区分大小写名称的第一个 cookie 的值。Cookie 本身不区分大小写。
您仍然可以通过一些解决方法访问 cookie:
for (int index = 0; index < cookies.Count; index++)
{
writer.Write("<li>{0:D}> <b>", index);
HttpUtility.HtmlEncode(cookies.GetKey(index), writer);
writer.Write("</b> = "");
HttpUtility.HtmlEncode(cookies[index].Value, writer);
writer.Write(""</li>");
}
// -> cookieExample1=1 cookieExaMPLE1=2
要了解为什么 cookie 或一般会话参数不区分大小写,请参阅.NET HttpSessionState 不区分大小写。简短的结论是保持 asp.net 与旧版本向后兼容。
推荐阅读
- json - react native react-native-geocoding地址不会渲染
- xml - XMLReader - 如何读取此元素/节点模式
- php - php中私有方法的继承和后期静态绑定
- dart - AngularDart 触摸和移动
- java - 无法在 android web 视图中从服务器下载文件
- matlab - 在MATLAB中为神经网络执行用户定义的卷积函数非常慢
- python - NLTK语言树遍历和提取名词短语(NP)
- xcode - 如何在 Xcode 中渲染具有半透明纹理的 3D 模型?
- c++ - 为什么我看不到字符串?
- docker - 错误:在 Jenkins 中获取远程 repo 'origin'