关于asp.net:IIS集成请求处理管道—修改请求

关于asp.net:IIS集成请求处理管道—修改请求

IIS Integrated Request Processing Pipeline — Modify Request

我想在IIS集成请求处理管道模式下运行的IIS7中使用HttpModule实现类似ISAPI筛选器的功能。

目标是在Web服务器级别查看传入的请求,并将一些自定义HttpHeaders注入到请求中。 (for ex: HTTP\\_EAUTH\\_ID)

在ASPX页面的页面生命周期的后期,我应该能够将该变量用作

1
string eauthId = Request.ServerVariables["HTTP\\_EAUTH\\_ID"].ToString();

因此,在Web服务器级别实现此模块,是否可以更改ServerVariables集合?


HttpRequest.ServerVariables属性是一个只读集合。因此,您不能直接对其进行修改。我建议您将自定义数据从http模块存储在httpcontext(或全局应用程序对象或数据库)中,然后在aspx页中读取该共享值。

如果您仍然想修改服务器变量,那么在此线程中有一种使用反射的黑客技巧。


您将无法修改HttpRequest.HeadersHttpRequest.ServerVariables集合。但是,您可以将自己的信息添加到以下任何一项:

1
2
HttpContext.Current.Items
HttpContext.Current.Response.Headers

不幸的是,Request.Params, Request.QueryString, Request.Cookies, Request.Form(以及您想到填充的几乎所有其他地方都是只读的。

如果您打算将其安装到IIS 7中,我强烈建议您不要使用反射。考虑到此代码(可能)需要通过网络服务器的每个请求,因此它必须非常快反射并不能减少反射(除非您的用户很少)。

祝好运!


我相信服务器变量列表仅包含从浏览器发送到服务器的标头。


推荐阅读

    linux修改时区的命令?

    linux修改时区的命令?,时间,系统,大陆,国家,标准,时区,命令,日期,终端,方法,L

    linux网络修改命令?

    linux网络修改命令?,地址,网络,系统,工作,服务,代码,管理,命令,工具,设备,Lin

    vim运行linux命令?

    vim运行linux命令?,系统,工作,信息,地址,命令,标准,时间,情况,工具,基础,linu

    linux下并行运行命令?

    linux下并行运行命令?,系统,服务,工作,命令,环境,网络,暂停,文件,脚本,参数,l

    linux修改端口号命令?

    linux修改端口号命令?,代码,服务,系统,端口,工作,邮箱,文件,编辑,命令,后果,

    linux下并行运行命令?

    linux下并行运行命令?,系统,服务,工作,命令,环境,网络,暂停,文件,脚本,参数,l

    linux命令换行后修改?

    linux命令换行后修改?,服务,系统,本行,代码,环境,工作,命令,文件,终端,字符,

    linux修改端口号命令?

    linux修改端口号命令?,代码,服务,系统,端口,工作,邮箱,文件,编辑,命令,后果,

    linux修改锁屏命令?

    linux修改锁屏命令?,时间,系统,密码,名称,软件,电脑,工具,命令,终端,快捷键,l

    linux修改时钟命令?

    linux修改时钟命令?,时间,系统,大陆,国家,时区,命令,信息,终端,时钟,日期,lin

    linux模拟请求命令?

    linux模拟请求命令?,地址,工作,系统,工具,信息,标准,命令,目录,发行,数据,lin

    linux的修改权限命令?

    linux的修改权限命令?,系统,信息,档案,网站,权限,文件,数字,命令,目录,选项,l

    linux命令ip修改?

    linux命令ip修改?,地址,系统,代码,密码,网络,信息,服务,设备,工具,命令,linux

    linux命令行后台运行?

    linux命令行后台运行?,服务,状态,标准,暂停,命令,后台,连续,地方,工作,方法,l

    脚本运行linux命令?

    脚本运行linux命令?,系统,环境,工具,工作,位置,底部,代码,发行,官网,终端,lin

    linux进程运行命令?

    linux进程运行命令?,系统,工作,状态,地址,信息,进程,基础,命令,管理,软件,lin

    linux显示运行命令?

    linux显示运行命令?,系统,服务,状态,信息,工具,数据,电脑,标准,管理,时间,如

    linux运行vim命令?

    linux运行vim命令?,系统,工具,官方网站,模式,基础,数据,代码,环境,入口,命令

    linux监控命令运行?

    linux监控命令运行?,系统,工作,地址,信息,工具,情况,标准,环境,命令,状态,lin

    linux中命令停止运行?

    linux中命令停止运行?,系统,代码,第一,命令,进程,指令,程序,方法,接线,硬盘,l