場景:當(dāng)網(wǎng)站logout以后,點擊瀏覽器后退按鈕,會回到之前的頁面,即使之前頁面的Action中做了權(quán)限控制。
原因:后退按鈕會使用瀏覽器緩存的內(nèi)容,并不會產(chǎn)生新的Http請求。
解決方案:
(1)創(chuàng)建一個新的MainController
繼承Controller
,并覆蓋OnActionExecuted
方法。
在OnActionExecuted
中清除瀏覽器緩存。
public class MainController : Controller
{
protected override void OnActionExecuted(ActionExecutedContext filterContext)
{
Response.Buffer = true;
Response.ExpiresAbsolute = DateTime.Now.AddDays(-1);
Response.Cache.SetExpires(DateTime.Now.AddDays(-1));
Response.Expires = 0;
Response.CacheControl = "no-cache";
Response.Cache.SetNoStore();
base.OnActionExecuted(filterContext);
}
}
(2)網(wǎng)站中其他Controller
,繼承這個MainController
。
public class AccountController : Controller
{
//...
}