`
zheyiw
  • 浏览: 1009359 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

用户退出后点击后退按钮重新进入(禁用浏览器后退)

    博客分类:
  • JAVA
阅读更多

退出登陆是再常见不过的了,先清除Session,再转到登陆页面,

        Session.Abandon();

        Response.Redirect("Login.aspx");

但是这样点点击浏览器的后退仍然可以回到刚才的页面,这可不行,在网上找了一下,也有不少人遇到这样的问题,试了一些方法,都不管用。不过最后还是找到,共享一下。

http://blog.csdn.net/lhypang2006/archive/2008/03/11/2170751.aspx

            Session.Abandon();

            Response.Write("<script>window.location.href='Login.aspx'</script>");

很简单,就是把Response.Redirect改为Response.Write,输出脚本,实现跳转。

 

再共享一个,也是关于退出的。

妙用Asp.Net中的HttpHandler 

上面的方法我觉得很好,写一个类继承IHttpHandler 

public class LogoutHttpHandler : IHttpHandler 
 {
  /// <summary>
  /// 通过实现 IHttpHandler 接口的自定义 HttpHandler 启用 HTTP Web 请求的处理。
  /// </summary>
  /// <param name="context">HttpContext 对象,它提供对用于为 HTTP 请求提供服务的内部服务器对象(如 Request、Response、Session 和 Server)的引用。 </param>
  public void ProcessRequest (HttpContext context) 
  {
   FormsAuthentication.SignOut();
   context.Response.Redirect("Login.aspx",true);
  }

再修改web.config,在<system.web></system.web>中增加如下脚本:
<httpHandlers>
 <add verb="GET" path="Logout.aspx" type="LogoutHttpHandler" />
</httpHandlers>

文章中把类编译成了dll,也可以只在App_Code中添加这样的类就好了。

还有上面的ProcessRequest 并没有清除Session。而且也是用Response.Redirect,点击后退也是可以回到原来的页面的。我改了一下

public class LogoutHttpHandler : IHttpHandler, IRequiresSessionState
{

public void ProcessRequest(HttpContext context)
    {
        //FormsAuthentication.SignOut();//这样可以不用

        context.Session.Abandon();

        context.Response.Write("<script>window.location.href='Login.aspx'</script>");

    }

}

这样不用再加一个页面Logout.aspx,退出的代码也简单。
protected void Exit_Click(object sender, EventArgs e)
    {
        Response.Redirect("Logout.aspx");
    }


原文地址:(http://www.diybl.com/course/4_webprogram/asp.net/netjs/20090412/164906.html)

分享到:
评论

相关推荐

    当用户退出点击浏览器后退仍可回到原来页面的解决方案

    解决方案2:禁用浏览器后退键 [removed] window.history.forward(1); 结果和方案一一样的结果,pad上没效果 解决方案3:Response.Write(“[removed][removed].replace(‘login.aspx’)[removed]”);仍旧可以后退,...

    javascript实现禁用浏览器后退按钮

    在Web开发过程中,有时候出于用户体验或者安全性的考虑,开发者可能会选择禁用浏览器的后退按钮功能。例如,在某些登录验证后的页面,为了防止用户通过后退按钮回到登录前的状态,从而绕过登录验证;或者在某些表单...

    花儿世界儿童浏览器使用帮助.docx

    7. **退出浏览器**:单击退出按钮将关闭浏览器,结束当前的浏览会话,保护孩子的隐私。 8. **静音控制**:音量图标可控制浏览器中的声音,避免噪音打扰,也可以防止孩子在观看视频时声音过大。 9. **音量调节**:...

    如何修复IE8的后退键失效.docx

    在使用Internet Explorer 8(以下简称IE8)时,用户可能会遇到一个问题,即浏览器的后退键突然失效,无法像往常一样浏览历史记录返回到上一个页面。这可能是由于浏览器的安全设置或者某些脚本设置导致的。为了解决这...

    wpf 嵌套web(ChromiumWebBrowser),web可以前进与后退

    在这里,`BackButton_Click`和`ForwardButton_Click`是按钮的点击事件处理程序,分别对应于浏览器的后退和前进按钮。这两个方法检查当前是否可以执行相应操作,如果可以,则调用`GoBack`或`GoForward`方法。 此外,...

    Js智能判断浏览器是关闭还是刷新的代码

    当页面即将卸载时,比如用户点击关闭按钮或者浏览器的后退按钮,`window.onunload`事件会被触发。同样,当页面刷新时,也会触发这个事件。为了区分这两种情况,开发者通常会设置一个标记,并在`onbeforeunload`事件...

    《全网搜索》V6.1软件使用手册,让思考从搜索开始.pdf

    在使用教程中,用户可以通过点击工具栏的“切换模式”按钮,选择不同模式进行操作。横向搜索模式需要选择语言和分类,纵向搜索模式则需选择语言和具体搜索引擎。自定义纵向搜索模式允许用户自定义搜索组合,通过“-&gt;...

    AOA办公高级软件试题.doc

    - **后退与前进**: "后退"按钮用于返回上一页面,"前进"按钮用于前进至上一页面。 - **链接跳转**: 单击网页导航栏的链接,可以跳转到相关页面。 7. **文件路径与考生文件夹** - 考试时,考生文件夹通常设定为"D...

    2021-2022计算机二级等级考试试题及答案No.18649.docx

    - **知识点**: 浏览器中的“后退”按钮功能。 - **解析**: “后退”按钮用于返回上一个浏览过的网页,而“前进”按钮则用于前进到下一个浏览过的网页。 #### 26. 第一代计算机逻辑元件采用 - **知识点**: 第一代...

    Google搜索结果轻松导航「Google search results easy navigation」-crx插件

    要浏览历史数据,请使用浏览器中的后退/前进按钮。 F。在任何时候,如果要清除上次搜索的结果,请退出浏览器。如果你想禁用扩展,你可以通过扩展管理器。 功能2 - 定制功能 如果您需要根据您的需求自定义此行为,请...

    键盘的各个键的Unicode编码.txt

    - **BrowserBack**、**BrowserForward**、**BrowserHome**等:这些键分别用于浏览器中的后退、前进和主页功能,它们的编码分别是166、167和172。 - **Cancel**:取消键,编码为3,用于取消当前操作。 - **Capital/...

    windows快捷键大全

    与点击屏幕左下角的“开始”按钮效果相同。 - **CTRL+ALT+DELETE**:打开安全选项屏幕。在Windows 9x中常用于解锁计算机或切换用户等操作。 - **DELETE**:删除所选文件或文件夹。直接将选定的项目移动到回收站。 - ...

    Google search results easy navigation-crx插件

    语言:English该扩展程序将快速参考上次搜索到的结果列表,并提供简单...要浏览历史数据,请使用浏览器中的后退/前进按钮。F。在任何时候,如果您想清除最后搜索的结果,请退出浏览器。如果要禁用扩展,可以通过扩展管理

Global site tag (gtag.js) - Google Analytics