当用户仍然登录时,浏览器后退按钮导航到登录页面

时间:2015-12-08 02:35:38

标签: c# .net asp.net-mvc-4 webforms back

我有一个主要使用.NET MVC构建的网站。我主要是因为登录页面是使用网络表单完成的。登录页面使用表单身份验证。问题是当我使用浏览器后退按钮时,它会在用户仍然进行身份验证时导航回登录页面。我怎样才能阻止这种情况发生?

我尝试在登录页面加载时将缓存设置为null,但没有运气:

Response.Cache.SetExpires(DateTime.UtcNow.AddMinutes(-1));
Response.Cache.SetCacheability(HttpCacheability.NoCache);
Response.Cache.SetNoStore();

如果有任何可能有用的代码,请告诉我。我以前从未处理过这个问题,我不确定会有什么帮助。

3 个答案:

答案 0 :(得分:0)

您可以添加一个功能,检查他们是否已登录,以及是否将其重定向到“仅限成员”页面。我无法发布任何代码,因为我在移动设备上。

答案 1 :(得分:0)

如果你想在浏览器上应用"无缓存"所有页面上的行为然后你应该把它放在global.asax。

protected void Application_BeginRequest()
{
Response.Cache.SetCacheability(HttpCacheability.NoCache);
Response.Cache.SetExpires(DateTime.UtcNow.AddHours(-1));
Response.Cache.SetNoStore();
}

答案 2 :(得分:0)

最简单的方法-禁用操作方法的输出缓存(通过属性OutputCache),该方法负责显示登录页面并添加条件以检查用户是否已登录:

public partial class AccountController : Controller
{
        [HttpGet]
        [OutputCache(NoStore = true, Duration = 0)]
        public virtual ActionResult Index()
        {
            if (User.Identity.IsAuthenticated)
                return RedirectToAction("Index", "Home");

            LoginModel model = new LoginModel();
            return View(model);
        }
}