Request的参数能重写吗?

石头子 2009-04-10 11:27:34
加了一个httpModules
//从网上找了一个例子,想过滤一下Request参数,但提示Request.Form和Querystring是只读的
//如何才能重新设置一个新的Request送到页面?


public class MyHandlerFactory : IHttpHandlerFactory
{
public IHttpHandler GetHandler(HttpContext context, string requestType, string url, string pathTranslated)
{

PageHandlerFactory factory = (PageHandlerFactory)Activator.CreateInstance(typeof(PageHandlerFactory), true);
IHttpHandler handler = factory.GetHandler(context, requestType, url, pathTranslated);
//执行一些其它操作
Execute(handler);
return handler;
}



private void Execute(IHttpHandler handler)
{

if (handler is Page)
{
//可以直接对Page对象进行操作

((Page)handler).PreLoad += new EventHandler(MyHandlerFactory_PreLoad);



}

}



void MyHandlerFactory_PreLoad(object sender, EventArgs e)
{

//((Page)sender).Response.Write("Copyright @Gspring<br/>");
//处理contxt 过滤危险字符测试
Page h = (Page)sender;

for (int i = 0; i < h.Request.QueryString.Count; i++)
{
string key = h.Request.QueryString.GetKey(i);
string value = h.Request.QueryString[i].ToString();
//想在这里重新设置一下Request.QueryString的值
}
for (int i = 0; i < h.Request.Form.Count; i++)
{
string key = h.Request.Form.GetKey(i);
string value = h.Request.Form[i].ToString();
//想在这里重新设置一下Request.Form的值
}

}

///
...全文
159 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
fiveandfive 2009-04-11
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 wuyq11 的回复:]
ihttphandler 实现url重写或在global里判断参数
http://blog.csdn.net/rmb147/archive/2009/02/06/3866633.aspx
[/Quote]

学习
wuyq11 2009-04-10
  • 打赏
  • 举报
回复
ihttphandler 实现url重写或在global里判断参数
http://blog.csdn.net/rmb147/archive/2009/02/06/3866633.aspx
石头子 2009-04-10
  • 打赏
  • 举报
回复
我是想在Page_Load之前处理一下参数,过滤一些字符,这样就不必每个页面都处理了
CeShenBeiWang 2009-04-10
  • 打赏
  • 举报
回复
up
wartim 2009-04-10
  • 打赏
  • 举报
回复
传都传过来了,怎么能改,改也没意义

110,536

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧