从MVC注销

pan*_*kaj 1 asp.net-mvc

我有一个MVC应用程序,我必须注销.要从应用程序注销,我在te母版页上创建了一个链接

[ <a id="A2" name="lnkLogout" href="http://localhost:1234/Home/LogOut" >Logout</a> ]
Run Code Online (Sandbox Code Playgroud)

并在控制器页面中创建了LoutOut操作

 public ActionResult LogOut()
        {
            Session.Clear();
            Session.Abandon();
            Redirect("http://AnotherApplicaton/Home/LogOut");
        }
Run Code Online (Sandbox Code Playgroud)

现在,当我单击LogOut链接时,它会重定向到LogOut操作,并在LogOut操作中删除所有会话,但是当我单击浏览器的后退按钮时,它会返回上一页并且会话仍处于活动状态.有没有人有这个问题的解决方案.

nWo*_*orx 16

如果您正在使用表单身份验证,那么这就是您要寻找的...

public ActionResult LogOut()
        {
            Session.Clear();
            FormsAuthentication.SignOut();
            Redirect("http://AnotherApplicaton/Home/LogOut");
        }
Run Code Online (Sandbox Code Playgroud)

心连心


Hem*_*jak 6

您在浏览器中访问的页面将根据浏览器中的缓存设置进行缓存.您需要阻止ASP.net MVC中的缓存,以便浏览器不缓存它们.执行此操作后,请尝试清除浏览器缓存并尝试再次加载页面.注销并尝试后退按钮.您应该收到一条消息,指出该页面已不再存在或其他内容.

有许多方法可以防止您的ASP.net页面在浏览器中缓存.一种方法是在呈现页面之前执行此操作.

this.Response.Cache.SetExpires(DateTime.UtcNow.AddMinutes(-1))
this.Response.Cache.SetCacheability(HttpCacheability.NoCache)
this.Response.Cache.SetNoStore()
Run Code Online (Sandbox Code Playgroud)