代码如下:

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

最新文章

  1. 学习日记day9: PC端页面流程优化
  2. Android PermissionChecker 权限全面详细分析和解决方案
  3. java 进制相互转换
  4. Firefly框架参考
  5. 聊聊 Statsd 和 Collectd 那点事!
  6. WebUploader——一个页面多个实例上传图片
  7. Web---文件上传-用apache的工具处理、打散目录、简单文件上传进度
  8. [WinJS] Promise 用法
  9. 《REWORK》启示录 招聘笔杆子——程序员为什么值得写博客
  10. jQuery中click()与trigger方法的区别
  11. 镍钯金工艺(ENEPIG)详解
  12. 制作双击可运行的jar
  13. ARM指令集详解
  14. iTOP4412环境搭建:arm-linux-gcc: 没有那个文件或目录
  15. PowerDesigner使用(设置继承,实现)
  16. mongodb三种存储引擎高并发更新性能专题测试
  17. session 、cookie、token的区别
  18. 关于MySql8.X设置允许root远程登陆的问题
  19. sicily 1051. Biker&#39;s Trip Odomete
  20. NB-IOT模组指令AT+NMSTATUS和AT+CGPADDR对比

热门文章

  1. PHP与MYSQL数据库链接方法
  2. oracle查询在当前数据库下当前用户拥有的表语句
  3. Microsoft Jet 数据库引擎 SQL 和 ANSI SQL 的比较
  4. &lt;NET CLR via c# 第4版&gt;笔记 第13章 接口
  5. PostgreSQL误删操作怎么处理
  6. null与undefined
  7. react 部分ES6写法
  8. python3 线性同余发生器 ( random 随机数生成器 ) 伪随机数产生周期的一些探究
  9. GET_DDL提取建表语句:ddl
  10. android中传统的创建数据库