ASP.NET身份验证登录和使用浏览器后退按钮注销

Eat*_*oku 29 asp.net asp.net-membership back-button

我正在寻找一个解决方案,供用户使用浏览器的后退按钮,一旦注销就导航到上一页.

我在asp.net中构建了一个Web应用程序,并使用自定义成员资格提供程序进行身份验证和授权.一切正常,除非用户点击退出链接退出应用程序并重定向到默认封面页,如果用户点击浏览器上的BACK BUTTON,它实际上会回到原来的状态.数据仍将显示.

当然,他们无法在该页面上做任何事情,点击任何链接,他们将再次重定向到登录页面.但是显示这些信息会让很多用户感到困惑.

我只是想知道是否有任何方式我可以清除浏览器的历史记录,因此使用不能返回,或者当他们点击后退按钮并让他们重定向到登录页面.

谢谢

Sky*_*ers 23

担心浏览器历史记录和后退按钮会让您头痛和生殖器疣.内置了一些设施来处理这个问题.

您的注销链接/按钮应指向包含此代码的页面以及您想要的任何其他内容.

[vb.net]

Imports System.Web.Security

Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) _
 Handles MyBase.Load
    Session.Abandon()
    FormsAuthentication.SignOut()
End Sub
Run Code Online (Sandbox Code Playgroud)

[C#]

using System.Web.Security;

private void Page_Load(object sender, System.EventArgs e)
{
    // Put user code to initialize the page here
    Session.Abandon();
    FormsAuthentication.SignOut();
}
Run Code Online (Sandbox Code Playgroud)

代码来自此页面并且有效,但页面很难看.

关于后退行为的好问题/答案可以在这里找到.

更新:

根据我与Matthew的对话,禁用敏感或动态的单个页面上的缓存可以使用以下代码完成:

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

我很想知道它是否适合你,就像它对我一样.

  • 这不是这个问题的答案. (3认同)