asp.net 退出登陆(解决退出后点击浏览器后退问题仍然可回到页面问题)

代码如下:

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

时间: 2024-10-04 17:23:04

asp.net 退出登陆(解决退出后点击浏览器后退问题仍然可回到页面问题)的相关文章

解决退出登录清空sesson后到首页点后退可以直接到会员信息页面依然需要刷新页面才到登录页面

解决办法为: (1) 用HTML标签设置HTTP头信息 <meta http-equiv="Pragma" content="no-cache"> <meta http-equiv="Cache-Control" content="no-cache"><meta http-equiv="Expires" content="0"> 说明:HTTP头信息“

android style 退出动画 解决退出动画无效问题

在AndroidMenifest.xml文件里面的Activity声明中,增加自己的Theme声明,如下: <activity android:name=".MyOrderListServiceActivity" android:theme="@style/MyTheme" > 在values的style.xml文件里 声明 一个style,起名为MyTheme,注意这里面有我自定义的东西,涉及到动画的声明,就只有 <item name="

解决点击浏览器后退按钮页面过期的问题

header('Cache-control: private, must-revalidate'); session_cache_limiter('private, must-revalidate'); 一定要在session_start()前

用户退出登陆后,token依旧有效的问题 及解决方法

问题: 用户登陆后 获取他的请求, 然后用户退出登陆. 按道理 会话应该没了,但是你用这个用户原来的token,居然还可以继续访问 https://segmentfault.com/q/1010000010043871/ 原文地址:https://www.cnblogs.com/kaibindirver/p/12417190.html

android退出登陆后,清空之前所有的activity,进入登陆主界面

如题: android退出登陆后,清空之前所有的activity,进入登陆主界面 在退出登陆时只需要增加一个intent标志 Intent intent_login = new Intent(); intent_login.setClass(SettingActivity.this,MyActivity.class); intent_login.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); //关键的一句,将新的activity置为栈顶 startActiv

docker 容器启动后立马退出的解决方法

原因: 容器同时只能管理一个进程,如果这个进程结束了容器就退出了,但是不表示容器只能运行一个进程(其他进程可在后台运行),但是要使容器不退出必须要有一个进程在前台执行. 解决方案: 启动脚本最后一个进程一定要用前台运行方式 即在进程最后不加 &(&表示在后台执行),否则容器退出 可在脚本后加  /bin/bash ,如果还不行,就换为 tail -f /dev/null (实时查看/dev/null) 原文地址:https://www.cnblogs.com/wangbaojun/p/10

wamp中修改后mysq数据库l闪退无法登陆解决办法

WampServer安装后密码是空的, 修改一般有三种方式: 一是通过phpMyAdmin直接修改: 二是使用WAMP的MySql控制台修改. 三是重置密码 第一种: 1.在phpMyAdmin界面中点击[用户],将用户概况中的所有用户名为[root] 用户的密码都改为[要修改的密码]. 修改是点击[编辑权限],设置密码即可. 2.在目录wamp\apps下找到phpmyadmin文件夹下的[config.inc.php]文件, 修改[$cfg['Servers'][$i]['password'

CentOS系统登陆root用户后发现提示符显示-bash-4.2#(已解决)

问题: 在root用户下终端显示,如图所示: 尝试退出登陆root用户依然不能解决 原因: root主目录下缺失.bash_profile和.bashrc文件 Tip: /etc/profile: 此文件为系统的每个用户设置环境信息,当用户第一次登录时,该文件被执行.并从/etc/profile.d目录的配置文件中搜集shell的设置. /etc/bashrc:  为每一个运行bash shell的用户执行此文件.当bash shell被打开时,该文件被读取. ~/.bash_profile:

yii2 后台前后台 前后台登陆、退出问题

问题描述:我使用前后台分离 配置如下: 'user' => [ 'identityClass' => 'app\models\User', 'enableAutoLogin' => true, 'identityCookie' => ['name' => '__user_identity', 'httpOnly' => true], 'idParam' => '__user', 'loginUrl' => ['public/login'], ], 'admi