【问题标题】:Clearing cookies with different paths on Logout在注销时清除具有不同路径的 cookie
【发布时间】:2014-03-11 03:29:12
【问题描述】:

我的域是假设 localhost 并且我使用“local1”名称存储 cookie,最初设置的 cookie 路径是“/”并且存在。 在我转到 Accounts 控制器后,我设置了一个名称相同但路径不同(“/accounts”)的 cookie,我对所有控制器都做同样的事情。 所以我得到了大约 5 个饼干

现在我的注销操作出现在 Accounts 控制器中,我只能看到 2 个 cookie……一个带有“/”路径,另一个带有“/accounts”路径。其他 cookie 不在上下文中。如何在注销时将它们全部删除?

【问题讨论】:

    标签: c# asp.net .net asp.net-mvc .net-3.5


    【解决方案1】:

    当您设置 cookie 的 Path 属性时,该 cookie 不再发布到您的应用程序/服务器中的所有页面。你可以在这里找到更多信息:Cookie.Path Property

    不过你可以试试这样的:

    string[] yourCookieNamesArray = Request.Cookies.AllKeys;
    
    foreach(string cookieName in yourCookieNamesArray)
    {
         Response.Cookies[cookieName].Expires = DateTime.Now.AddDays(-1);
    }
    

    更多关于 Request.Cookies.AllKeys 的信息here

    希望这会有所帮助!

    【讨论】:

    • 在 yourCookieNamesArray 中没有不同的路径键...所以解决方案无效
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-07-31
    • 1970-01-01
    • 2012-10-01
    • 2016-09-09
    • 1970-01-01
    • 2015-11-13
    相关资源
    最近更新 更多