2010-10-06 83 views
1

我试着写我自己的HTTP模块(IHttpModule的)读出来,增加了这样一个标题:在HTTP模块添加一个Http-页眉和从页面

public class MyModule: IHttpModule 
{ 
    public void Init(HttpApplication c) 
    { 

     c.BeginRequest += delegate{c.Response.AddHeader("MyHeader", "MyValue");}; 
    } 

    public void Dispose(){} 
} 

,并试图在阅读aspx页面如下:

var x = Request.ServerVariables["MyHeader"]; 

但它没有工作。任何想法为什么?

回答

3

您正在向头文件添加一些内容,这些头文件将从服务器发送到客户端,并尝试从服务器从客户端接收的头文件中读取它。这是两个完全不同的集合。

如果您正在使用它在模块和页面之间进行通信,您可能会发现最好在HttpContext.Items中添加一些内容,这样可以传递各种对象,并且不会污染带有东西的标题在那里不相关,也不需要会话,所以它是在相同请求上运行的代码之间进行通信的好方法。

0

添加像这样,使用事件 “EndRequest”

void application_EndRequest(object sender, EventArgs e) 
{ 
      HttpResponse response = HttpContext.Current.Response; 
      response.AddHeader("Author", "Sam Lin"); 
} 
相关问题