1. 程式人生 > 實用技巧 >asp.net win IIS下cookie讀取不區分大小寫如何處理

asp.net win IIS下cookie讀取不區分大小寫如何處理

  在做一個多系統sso單點登入時,遇到一個坑(asp.net):

Request.Cookies[key]

  讀取cookie時不區分大小寫。由於最初專案多沒有做到統一sso tokenkey的大小寫設定,導致部分系統登入出現問題。

  經過測試發現讀取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);
	}
    }
}    

  記錄一下。