2012-10-27 129 views
3

我使用多维cookie在我的应用程序中存储cookie。 例如在c中清除多维饼干#

HttpCookie MyCookie = Request.Cookies["Temp"] as HttpCookie; 
       if (MyCookie != null) 
       { 
        MyCookie.Values["SID"] = Session.SessionID; 
        MyCookie.Values["NAME"] = "NAME"; 
        MyCookie.Values["abc"] = "abc"; 
        MyCookie.Values["xyz"] = "xyz"; 
        ... 
       } 

现在检索我使用的这个多维饼干。

string s = Request.Cookies["Temp"]["SID"] 

我的问题是我想只从“Temp”cookie中过期的“SID”值。我试过这个

Request.Cookies["Temp"]["SID"] = null; 

但它不工作。我应该如何清除多维饼干中的特定索引?

回答

0

这已经回答了以下问题:ASP.NET Cookie Sub-Value Deletion

HttpCookie.Values是NameValueCollection中,所以你可以修改该集合 - 但你将需要重新发送cookie作为一个新的覆盖老一:

HttpCookie cookie = Request.Cookies["Temp"]; 
if(cookie != null) 
{ 
    cookie.Values.Remove("SID"); 
    Response.AppendCookie(cookie); 
} 

这在下面的MSDN页面还解释说:http://msdn.microsoft.com/en-us/library/aa289495(v=vs.71).aspx#vbtchaspnetcookies101anchor9

0

这样做。

Request.Cookies["Temp"].Values["SID"] = null; 

希望它有帮助。 :)

+0

这不会太工作。您需要将cookie附加到Response –