【问题标题】:Clear multidimensional cookie in c#在c#中清除多维cookie
【发布时间】:2012-10-28 04:59:00
【问题描述】:

我使用多维 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中清除特定索引?

【问题讨论】:

    标签: asp.net c#-4.0


    【解决方案1】:

    这已在以下问题中得到解答: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

    【讨论】:

      【解决方案2】:

      这样就可以了。

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

      希望对您有所帮助。 :)

      【讨论】:

      • 这也行不通。您需要将 cookie 附加回 Response
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-01-03
      • 2023-02-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-11-05
      相关资源
      最近更新 更多