如何在不跳转的情况下实现用户登录
来源:互联网 发布:集线器端口上的电源 编辑:程序博客网 时间:2024/05/02 03:00
如何在不跳转的情况下实现用户登录
本文详细介绍拦截Response.Redirect的跳转并转换为Js的跳转,有一个很常见的需求,某个页面需要用户登录才能访问,或者某个操作需要用户登录
这就需要检测用户登录,一般是使用Ajax去检测是登录,当用户未登录时跳转到登录页面
那么问题来了····
有的时候我们跳转到登录是直接Redirect,而有的时候因为是使用的Ajax,所以直接必须在客户端用Js使用location.href进行跳转
网上找了好久···找不到,然后想起Ext.Net实现了这个需求
就直接参考了Ext.Net的实现,也就是根据需求拦截Response.Redirect的跳转并转换为location.href
直接上代码
1 public class AjaxHttpModule : IHttpModule 2 { 3 public void Dispose() 4 { 5 throw new NotImplementedException(); 6 } 7 8 public void Init(HttpApplication context) 9 {10 context.PreSendRequestHeaders += context_PreSendRequestHeaders;11 }12 13 void context_PreSendRequestHeaders(object sender, EventArgs e)14 {15 HttpApplication application = sender as HttpApplication;16 HttpContext context = application.Context;17 if ((context.Response.StatusCode == 0x12e) && (context.Request.Headers.AllKeys.Contains("X-Requested-With")))18 {19 string redirectLocation = context.Response.RedirectLocation;20 context.Response.ClearContent();21 context.Response.StatusCode = 200;22 context.Response.ContentType = "text/html";23 context.Response.Charset = "utf-8";24 context.Response.Headers.Remove("location");25 context.Response.Output.Write("{\"script\":\"window.location.href='" + redirectLocation + "';\"}");26 }27 }28 }
代码很简单,当检测到响应到状态码为302并且是一个Ajax请求时,则自定义响应内容
相关资源:
xinyanheiqi.rar
xichuguandan .rar
xiazhaidoudizhu.rar
xiazaiqqdoudizhu.rar
xiazaijjdoudizhu.rar
xiazaiguandan .rar
xiazaidudizhu.rar
xiazaidoudizhu.rar
xiaoyouxidoudizhu.rar
xiaoxaioyouxi.rar
xianyangkawuxin.rar
zhuoqouyoux.rar
xiazaibokechengshi.rar
zhuoqiuyiuxi.rar
zhuoqiu.rar
zhuoaouxiaoyouxi.rar
zhenrndoudizhu.rar
zhenrenduoudizhu.rar
zhenrenduodizhu.rar
zhenrendudizhu.rar
zhenrendoudzhu.rar
80分 95分.rar
将跳转的地址拼接为一个json字符串由客户端解析,最终解析结果为
{script:"window.location.href='/game/Play';"}
- 如何在不跳转的情况下实现用户登录
- ScriptX控件如何在不跳转页面的情况下将要打印的内容打印出来
- ScriptX控件如何在不跳转页面的情况下将要打印的内容打印出来
- ScriptX控件如何在不跳转页面的情况下将要打印的内容打印出来
- Windows XP如何在不登录Administrator帐户的情况下修改密码
- 在没有导航控制器的情况下,如何实现页面的跳转
- yii2-如何控制没有登录的情况下,全部跳转到登录页面
- 在极光推送成功后的情况下实现跳转
- 如何在不注销的情况下用另外一个帐号登录网上邻居的同一台机器。
- C语言如何在不定义函数的情况下实现递归
- 不知道用户口令情况下,如何把表建在指定模式下?
- 如何在不联网的情况下安装 Silverlight Tools
- 如何在不联网的情况下安装 Silverlight Tools
- 服务器在不联网的情况下如何对时
- 如何在不操作界面的情况下关闭UIPopoverController
- 如何在不装ORACLE的情况下使用PLSQL
- 如何在不改SQL的情况下优化数据库
- 在不破坏背景的情况下实现动态文字
- 粒子群优化算法(PSO)简介以及其C++风格框架
- 常用控件
- Ubuntu下Web服务器的搭建
- 什么蔬菜含维生素C多
- 【C语言训练】计算1977!*
- 如何在不跳转的情况下实现用户登录
- 基于SPI的16位DAC波形产生方案
- 浅谈应用工厂模式和单例在Android中实现业务隔离
- 大数运算
- 薇薇动听(三)
- C语言笔记之存储类
- 第三代会员管理软件新鲜出炉了(专项分级管理,员 工,商户,平台运营),精仿一卡易会员
- 一些细节问题
- 第一次的起飞