2017-08-07 142 views
2

我正在使用Asp.net核心网站,并在我的注销链接中删除所有当前的域cookie。 当我与Asp.net MVC工作我想这个代码清除Asp.net核心中的所有cookies

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

此代码不能在Asp.net核心工作。 如何清除Asp.net Core中的所有Cookie?

+1

尝试使用'Response.Cookies.Delete(饼干);' – Set

+0

我发现这个代码_secureCookies.Remove(HttpContext的, “用户名”); 但我想清除所有Cookiies –

+0

我该如何使用__secureCookies.Remove();在foreach中找到所有的cookies? –

回答

0

试试这个:

//ASP.NET Core 
foreach (string cookie in myCookies) 
{ 
    Response.Cookies.Delete(cookie); 
} 
8

Request.Cookies是一个键值集合,其中的关键是一个cookie的名字。所以

foreach (var cookie in Request.Cookies.Keys) 
{ 
    Response.Cookies.Delete(cookie); 
} 

参见:

public abstract class HttpRequest 
{ 
    // Summary: 
    //  /// Gets the collection of Cookies for this request. /// 
    // 
    // Returns: 
    //  The collection of Cookies for this request. 
    public abstract IRequestCookieCollection Cookies { get; set; } 
    ... 
} 

IRequestCookieCollection

public interface IRequestCookieCollection : IEnumerable<KeyValuePair<string, string>>, IEnumerable