asp.net win IIS下cookie读取不区分大小写如何处理
在做一个多系统sso单点登录时,遇到一个坑(asp.net):
Request.Cookies[key]
读取cookie时不区分大小写。由于最初项目多没有做到统一sso token key的大小写设定,导致部分系统登录出现问题。
经过测试发现读取cookie不区分,设置cookie区分。
一轮操作猛如虎,得出如下解决方案:
1、读取cookie:
string GetCookie(string key)
{
string value = "";
for (int i = 0; i <= Request.Cookies.Count - 1; i++)
{
if (Request.Cookies.Keys.Get(i).Equals(key))
{
res = Request.Cookies.Get(i).Value;
break;
}
}
return value;
}
2、删除cookie(设置过期时间):
void clearCookies(string key)
{
string[] keyList = Request.Cookies.AllKeys;
foreach (string item in keyList)
{
if (item.ToLower().Equals(key.ToLower()))
{
HttpCookie cookie = new HttpCookie(item, "");
cookie.Expires = DateTime.Now.AddDays(-1);
Response.Cookies.Add(cookie);
}
}
}
记录一下。

浙公网安备 33010602011771号