Добавление Http-заголовка в HttpModule и считывание его со страницы - PullRequest
1 голос
/ 06 октября 2010

Я попытался написать свой собственный HttpModule (IHttpModule), который добавляет заголовок, подобный этому:

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

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

    public void Dispose(){}
}

, и попытался прочитать на странице aspx, как это:* но это не сработало.Есть идеи почему?

Ответы [ 2 ]

3 голосов
/ 06 октября 2010

Вы добавляете что-то в заголовки, которые будут отправлены с сервера клиенту, и пытаетесь прочитать это из заголовков, уже полученных сервером от клиента.Это две совершенно разные коллекции.

Если вы используете это для связи между модулем и страницей, вам может быть предпочтительнее добавить что-то в HttpContext.Items, это позволяет использовать все виды объектов.передается и не загрязняет заголовки вещами, которые там не актуальны и не требуют сессий, так что это хороший способ связи между кодом, работающим по одному и тому же запросу.

0 голосов
/ 23 июля 2013

добавьте это так, используйте событие "EndRequest"

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