2017-08-07 4 views
2

私はAsp.net Core Webサイトで作業しています。私のログアウトリンクでは、現在のすべてのドメインクッキーを削除したいと考えています。私はAsp.net MVCでの作業だったとき 私はこのコードはAsp.netコアでは動作しませんAsp.netコア内のすべてのクッキーをクリア

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

このコードを試してみました。 Asp.net CoreのすべてのCookieをクリアするにはどうすればよいですか?

+1

トライ使用 'Response.Cookies.Delete(クッキー)である;' – Set

+0

私はこのコード_secureCookies.Remove(のHttpContextを見つけます"UserName"); しかし、私はすべてのCookieをクリアしたい –

+0

どのように私は__secureCookies.Remove()を使用できますか? foreachですべてのクッキーを見つける? –

答えて

0

これを試してみてください:

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

Request.Cookiesキーがクッキー名で、キーと値のコレクションです。だから、

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 
関連する問題