2014-01-07 48 views
0

我使用名为[NoCache]的Action Filter通过按下浏览器后退按钮来禁用登录页面的访问。代码如下。NoCache没有按预期工作

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

      base.OnResultExecuting(filterContext); 
     } 
    } 

然后我在登录页面中提到它,如下所示。

 [HttpPost] 
     [NoCache] 
     public ActionResult Index(Login objLogin) 
     { 

      return RedirectToAction("Index", "Blood"); 
     } 

但是结果出乎意料。而不是重定向到血液/索引行动,控制转移到的网址:http://localhost:4506/Account/Login?ReturnUrl=%2fBlood

我怎么能纠正这一点?谢谢。

回答