1
我剛剛閱讀了大約OutputCache
,並且我看到如何根據發送給視圖的參數來應用VaryByParam
來更改緩存,但是我想根據參數和當前登錄的用戶更改緩存(使用Asp.Nets默認成員資格)。我一直在環顧四周,但我似乎無法找到一種方法來實現這一目標。按會員輸出緩存?
對我應該嘗試的建議有什麼建議嗎?
我剛剛閱讀了大約OutputCache
,並且我看到如何根據發送給視圖的參數來應用VaryByParam
來更改緩存,但是我想根據參數和當前登錄的用戶更改緩存(使用Asp.Nets默認成員資格)。我一直在環顧四周,但我似乎無法找到一種方法來實現這一目標。按會員輸出緩存?
對我應該嘗試的建議有什麼建議嗎?
使用VaryByCustom。我實現了這樣的事情:
[OutputCache(VaryByCustom="user")]
public ActionResult SomeAction()
{
return View();
}
在Global.asax.cs中
public override string GetVaryByCustomString(HttpContext context, string arg)
{
if (arg == "user")
{
return context.Request.User.Identity.IsAuthenticated ? context.Request.User.Identity.Name : string.Empty;
}
return base.GetVaryByCustomString(context, arg);
}
在MVC 4,我相信用戶屬性脫落背景下,而不是請求。 – Steve