2013-11-26 12 views
20

手動で認証Cookieを削除する必要があります(何らかの理由でFormsAuthentication.SignOutを使用する代わりに機能しません)。試しました手動でasp.net MVC 4のクッキーを削除するには

System.Web.HttpContext.Request.Cookies.Remove(cookieName); // for example .ASPXAUTH 
System.Web.HttpContext.Response.Cookies.Remove(cookieName); // for example .ASPXAUTH 
FormsAuthentication.SignOut(); // I don't know why this one does not work 

これらのコマンドはどちらも動作しません。実際にはレスポンスクッキーは空であり、リクエストクッキーには次のコマンドが実行されたときに削除したいクッキーが含まれています。削除されたクッキーは含まれていませんが、ブラウザではクッキーはまだ存在しています。ログアウトする。

答えて

47

試してみてください。MSDN

if (Request.Cookies["MyCookie"] != null) 
{ 
    var c = new HttpCookie("MyCookie"); 
    c.Expires = DateTime.Now.AddDays(-1); 
    Response.Cookies.Add(c); 
} 

詳しい情報。

+0

私は認証クッキーを手動で設定するのに使用しましたが、名前はフォーム認証クッキー名とは異なりました。私はFormsAuthentication.SignOut()を変更した後、実際に働いた。とにかくありがとうございます – Dimitri

+4

おっと... http://stackoverflow.com/a/5122611/2436549 – Zafar

関連する問題