首页 ┆ 网站地图 ┆ 在线留言 ┆ 游戏资讯 ┆ 资源下载 ┆ 端午节祝福 ┆ 迅雷在线影视 ┆淘宝手机在线充值 ┆淘宝游戏点卡充值 
设为首页
加入收藏
联系我们
高级搜索
您当前的位置: 主页>NET专区>ASP.NET>Response.Redirect在新窗口打开的新方法
Response.Redirect在新窗口打开的新方法
来源: 发布时间:2008-04-10 发布人: 浏览: 人次   字体: [ ]  

这里介绍Ihttpmodule处理请求管道的方法。Response.Redirect的原理是服务器设置返回http状态码为302,然后客户端执行跳转,用reflector可以看到.net的代码段。

以下是HttpResponse类的Redirect方法中的跳转代码

this.StatusCode = 0x12e
this.RedirectLocation = url;

所以,我们可以扩展Ihttpmodule来拦截http状态码,强制设为200,同时插入js代码段来实现新窗口打开。以下是Ihttpmodule的实现代码

using System;
using System.Collections.Generic;
using System.Text;
using System.Web;
namespace ClassLibrary2
{
    
public class Class1:System.Web.IHttpModule
    
{
        
public void Init(HttpApplication application)
        
{

            application.PreSendRequestHeaders 
+= new EventHandler(application_PreSendRequestHeaders);
        }


        
void application_PreSendRequestHeaders(object sender, EventArgs e)
        
{
            HttpApplication Application 
= (HttpApplication)sender;

            HttpContext context 
= Application.Context;

            
if (context.Response.StatusCode == 302)
            
{
                context.Response.Write(
"<script>window.open('"+context.Response.RedirectLocation+"')</script>");
                context.Response.StatusCode 
= 200;
            }


        }

 
        
public  void Dispose()
        
{
        }


        
    }

}

最后配置一下web.config就可以了

<?xml version="1.0"?>
<configuration>
    
<system.web>
        
<compilation debug="true"/>
        
<authentication mode="Windows"/>
    
<httpModules>
      
<add name="MyModule" type="ClassLibrary2.Class1,ClassLibrary2"></add>
    
</httpModules>
    
</system.web>
</configuration>

另外一点,ms自坐主张的在跳转之后,end之前插入了这么一段代码,我得b4他们一下,解决办法,大家自己想想吧。

this.Write("<html><head><title>Object moved</title></head><body> ");
        
this.Write("<h2>Object moved to <a href="" + HttpUtility.HtmlAttributeEncode(url) + "">here</a>.</h2> ");
        
this.Write("</body></html> ");

相 关 文 章   发布商链接
·.net 如何得到某日是一年的第几周
·ASP.net获取SQL server数据库image类...
·一个可自动适应高度的TextBox,附代码
·ASP.NET中实现单点登录思路及其代码
·图解asp.net如何用excel做报表的实例
·ASP.NET利用dot模板生成Word文档代码
·ASP.NET资源文件夹的具体介绍
·asp.net实现的截取字符串函数,保证汉...
·分析asp.net页面后台执行的流程
·如何防止asp.net盗链下载问题的实现...
 §最新评论:(评论内容只代表网友观点,与本站立场无关!)
网名: 验证码:  【所有评论】【↑返回顶部
评 分: 12 345
评论内容:(不能超过500字,请自觉遵守互联网相关政策法规。[按 Ctrl+Enter 可直接提交]
注意:请勿在本站发布政治话题、色情及违反法律的内容。
IT知道网 声明:刊登此文章是为了传递更多信息,文章内容仅供参考,转载请注明出处。
推 荐 文 章
·实例讲解ASP.NET实现加密Cook...
·如何实现在DataList控件中的D...
·实例讲解asp.net生成高质量缩
·asp.net适用于IE或FireFox的...
·举例详解C#代码与javaScript...
·asp.net无刷新上传文件
·在Ie中保存图片时出现"800700...
·asp.net文件上传大小限制的控
·asp.net动态生成txt文本文件...
·asp.net实现将Excel文件导入...
·实现多列,带图片的DropDownLi...
·javascript实现TreeView 控件
·ASP.NET配置Word的操作权限
·让FileUpload控件在IE和FireF...
·ASP.NET实现Office文档的分类
热 门 文 章
·asp.net(C#)上传下载及文件管...
·图解asp.net如何用excel做报...
·asp.net无刷新上传文件
·Asp.Net防止刷新重复提交数据...
·asp.net实现将Excel文件导入...
·ASP.NET取得物理路径和虚拟路...
·asp.net中Web.Config配置文件...
·asp.net(c#)生成验证码代码,...
·asp.net页面回传与js调用服务...
·asp.net中DataBinder.Eval的...
·asp.net(C#版)实现登录验证码...
·DataGrid中DropDownList触发S...
·asp.net可输入的下拉框复合控...
·ASP.net 实现批量数据更新或...
·asp.net中常见的几种日历控件...
网站首页 - 关于本站 - 加入收藏 - 网站地图 - 友情连接 - 在线留言 - 联系我们 - 返回顶部
Copyright © 2007 IT知道网.[冀ICP备07026896号]. All Rights Reserved .