BPX
BPX

Reputation: 886

NoCache is not working as expected

I used an Action Filter named [NoCache] to disable the access of login page after login by pressing the browser back button. The code is given below.

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);
        }
    } 

Then i referred it in login page as shown below.

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

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

But the result was unexpected. Instead of redirecting to Blood/Index action, the control transfered to the url : http://localhost:4506/Account/Login?ReturnUrl=%2fBlood

How can i correct this ?. Thanks.

Upvotes: 0

Views: 145

Answers (1)

Hatjhie
Hatjhie

Reputation: 1365

This probably related with Form Authentication feature. Do you need it? If not, just don't use it.

For more details, please refer to: How to remove returnurl from url?

Upvotes: 1

Related Questions