HttpContext.Response.Cache
知りたい-とHttpContext.Current.Cache
オブジェクトの違いは何ですか?およびAsp.netMVCWebアプリケーションで何を使用する必要がありますか?
なぜ私はこの質問をしているのですか?
なぜなら、私には独自の[NoCache]
属性があり、ビューのリダイレクト中にキャッシュを回避する責任があります。
例えば
public override void OnActionExecuting(ActionExecutingContext filterContext)
{
var cache = filterContext.HttpContext.Response.Cache;
cache.SetExpires(DateTime.Now.AddDays(-1));
cache.SetValidUntilExpires(false);
cache.SetRevalidation(HttpCacheRevalidation.AllCaches);
cache.SetCacheability(HttpCacheability.NoCache);
cache.SetNoStore();
base.OnActionExecuting(filterContext);
}
そして、私は私の中でこの上記の属性を使用していBaseController
ます。
[NoCache]
public class BaseController : Controller
{
}
これは問題なく動作します!
しかし、認証の部分で-私は以下のメカニズムによっていくつかの情報をキャッシュに保存しています
public ActionResult Login()
{
HttpContext.Current.Cache.Insert("someKey", "someValue", null, expiredTime.Value, Cache.NoSlidingExpiration);
return view();
}
だから、私の質問は..
私はコントローラーの基本クラスでカスタム属性を使用しています。これは、Loginメソッドコードによって設定されたアプリケーション全体でキャッシュキーと値にアクセスできますが、キャッシュアイテムをクリアする役割を果たします。
なぜこの両方のキャッシュメカニズムが異なる動作をするのですか?これら2つの違いは何ですか?
これに関するアイデアや情報を提案していただけませんか。