3

我使用多维 cookie 在我的应用程序中存储一个 cookie。例如

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";
                   ...
                }

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

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

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

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

但它不起作用。我应该怎么做从多维cookie中清除特定索引?

4

2 回答 2

0

这会做。

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

希望能帮助到你。:)

于 2012-10-27T09:25:54.460 回答
0

这已在以下问题中得到解答:ASP.NET Cookie 子值删除

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

于 2012-10-27T20:51:34.790 回答