2011-06-22 34 views
1

這是我的cookie值:C#解析餅乾得到空

email%3Drrr%2540test.com%26password%3Da8f5f167f44f4964e6c998dee827110c 

,這就是我的代碼:

Request.Cookies["SolidDomain"]["email"]; 
Request.Cookies["SolidDomain"]["password"]; 
在這兩種情況下

string email1 = Request.Cookies.Get("SolidDomain").Values.Get("email"); 
string password2 = Request.Cookies.Get("SolidDomain").Values.Get("password"); 

我得到空。這裏有什麼問題?

+4

** ** NEVER存儲密碼一塊餅乾。 – SLaks

+2

這是一個示例代碼,將「密碼」更改爲任何其他關鍵字。問題是爲什麼它不解析它? –

回答

1

你可以有沒有問題的子鍵餅乾,但我認爲你給我們的字符串沒有使用子鍵。事實上,您發佈的字符串可以直接訪問有:

Request.Cookies["email"]; 
Request.Cookies["password"]; 

如果可以查詢到該子項的結構,你可以使用此代碼段:

for(int i=0; i<Request.Cookies.Count; i++) 
{ 
    aCookie = Request.Cookies[i]; 
    output.Append("Name = " + aCookie.Name + "<br />"); 
    if(aCookie.HasKeys) 
    { 
     for(int j=0; j<aCookie.Values.Count; j++) 
     { 
      subkeyName = Server.HtmlEncode(aCookie.Values.AllKeys[j]); 
      subkeyValue = Server.HtmlEncode(aCookie.Values[j]); 
      output.Append("Subkey name = " + subkeyName + "<br />"); 
      output.Append("Subkey value = " + subkeyValue + 
       "<br /><br />"); 
     } 
    } 
    else 
    { 
     output.Append("Value = " + Server.HtmlEncode(aCookie.Value) + 
      "<br /><br />"); 
    } 
} 

並檢查輸出變量查看Value和SubKey值。

如果你想允許的cookie域(我猜這就是你正在努力實現的),你可以通過使用domain屬性做到這一點:

Response.Cookies["password"].Domain = "SolidDomain"; 
+0

感謝您的一個片段。所以我跑了它。我有2個餅乾,1 - sessionID,2 - SolidDomain(我需要的那個)。它沒有找到和HasKeys,並跳過其他顯示兩個cookie的cookie值。爲什麼它說它沒有鍵? –