2012-07-20 16 views
5

私は自分のカスタム認証を作成しました。ログオフボタンをクリックすると、broswerのキャッシュを無効にします。私はどうしたらいいですか?ログオフアクションには何を含める必要がありますか?私は、次のよasp.net mvc 3のブラウザのキャッシュを無効にする方法は?

http://www.bradygaster.com/custom-authentication-with-mvc-3.0

+0

あなただけのセッションクッキー –

+0

を削除する必要があり、私はセッションクッキーを削除することができますしかし、ログアウトボタンが押されたときにブラウジングキャッシュを無効にする/キャッシュ履歴を削除する方法 – kiransh

答えて

19

は、あなたの懸念がログオフした後に戻ってブラウザボタンですか?

「はい」の場合、ログオフ時にキャッシュを無効にしないでください。キャッシュされたくないすべてのページで無効にする必要があります。この場合、すべてのページが認証されます。

これは、カスタムアクションフィルターを書き込むことによって行うことができる:

public class NoCacheAttribute : ActionFilterAttribute 
{ 
    public override void OnResultExecuting(ResultExecutingContext filterContext) 
    { 
     var response = filterContext.HttpContext.Response; 
     response.Cache.SetExpires(DateTime.UtcNow.AddDays(-1)); 
     response.Cache.SetValidUntilExpires(false); 
     response.Cache.SetRevalidation(HttpCacheRevalidation.AllCaches); 
     response.Cache.SetCacheability(HttpCacheability.NoCache); 
     response.Cache.SetNoStore(); 
    } 
} 

をし、それをあなたの行動を飾る:

[Authorize] 
[NoCache] 
public ActionResult Foo() 
{ 
    ... 
} 
関連する問題