asp.net 退出登陆(解决退出后点击浏览器后退问题仍然可回到页面问题)
2009-10-03 10:18
639 查看
退出登陆是再常见不过的了,先清除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");
}
$("con_da1").innerHTML=$("con_tj_tp").innerHTML;
$("con_tj_tp").innerHTML="";
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");
}
$("con_da1").innerHTML=$("con_tj_tp").innerHTML;
$("con_tj_tp").innerHTML="";
相关文章推荐
- asp.net 退出登陆(解决退出后点击浏览器后退问题仍然可回到页面问题)
- asp.net 退出登陆(解决退出后点击浏览器后退问题仍然可回到页面问题)
- asp.net退出登陆(解决退出后点击浏览器后退问题仍然可回到页面问题)
- asp.net 退出登陆(解决退出后点击浏览器后退问题仍然可回到页面问题)
- asp.net 退出登陆(解决退出后点击浏览器后退仍然可回到页面问题)
- asp.net 退出登陆(解决退出后点击浏览器后退问题仍然可回到页面问题)
- asp.net 退出登陆(解决退出后点击浏览器后退问题仍然可回到页面问题)
- asp.net 退出登陆(解决退出后点击浏览器后退问题仍然可回到页面问题)
- asp.net用FileUpload多次上传图片,点击浏览器后退退出当前页面,不重复提交
- 关于用户退出,点击浏览器后退仍可回到原来页面解决
- 关于用户退出,点击浏览器后退仍可回到原来页面解决二
- 解决:在点击用户退出登录时,再按浏览器的后退按钮,仍然能够看到之前的页面
- javascript+Struts2解决退出清空session以后,点击后退按钮显示原页面信息的问题
- 关于用户退出,点击浏览器后退仍可回到原来页面
- 用ASP.NET做项目,本本上的系统是XP,网上下载了IIS6,安装完后出现HTTP500问题,解决之.接着出现了浏览页面时跳出登陆框让输用户名及密码,GOOGLE了一下,原来是权限不够,解决方法
- 当用户退出点击浏览器后退仍可回到原来页面的解决方案
- 解决点击浏览器返回按钮回到上一页面,页面变为初始界面的问题(java+html)
- 解决点击浏览器后退按钮页面过期的问题
- 禁用页面缓存。目的:用户登录后退出。点击浏览器后退按钮造成的问题
- 禁用页面缓存。目的:用户登录后退出。点击浏览器后退按钮造成的问题