Server.TransferRequest не отправляет переданный заголовок

Моя цель - отправлять свои собственные элементы заголовка ответа HTTP с помощью Server.TransferRequest.

Я пытаюсь сделать что-то подобное:

Response.Cache.SetCacheability(HttpCacheability.NoCache);
Response.Cache.SetNoStore();    

var headers = new NameValueCollection
{
    {"ErrorUrl", Context.Request.RawUrl},
    {"ErrorCode", code.ToString()}
};

Server.TransferRequest("~400.html", true, "GET", headers);

Но Chrome показывает меня в заголовках ответа:

Accept-Ranges:bytes
Content-Length:573
Content-Type:text/html
Date:Wed, 10 Aug 2016 14:32:36 GMT
ETag:"a9d0dad4fbd1d11:0"
Last-Modified:Wed, 29 Jun 2016 11:46:10 GMT
X-Content-Type-Options:nosniff
X-Frame-Options:deny
X-SourceFiles:=?UTF-8?B?RDpcS0ZTXE1haW5cUHJvZHVjdFxLREMuVXNlcldlYlxLREMuVXNlcldlYi5XZWJSb2xlXHNyY1xWaWV3c1xlcnJvclxlbi1VU1w0MDMuaHRtbA==?=
X-XSS-Protection:1

Пожалуйста, помогите мне получить ожидаемый заголовок. Спасибо

1 ответ

Решаемые. Я создал класс наследовать IHttpModule. Я добавил событие OnPreSendRequestHeaders. И у меня есть доступ к заголовкам, которые я отправил.

    public class HeadersModule : IHttpModule
    {
        public void Init(HttpApplication context)
        {
            context.PreSendRequestHeaders += OnPreSendRequestHeaders;
        }

        private void OnPreSendRequestHeaders(object sender, EventArgs e)
        {
            HttpContext currentContext = HttpContext.Current;
            string errorUrl = currentContext.Request.Headers["ErrorUrl"];
        }

        public void Dispose()
        {
        }
    }

Также я добавил имя в файл web.config. (См. Примеры там https://msdn.microsoft.com/en-us/library/aa719858(v=vs.71).aspx)

Эта проблема возникла из-за того, что Server.TransferRequest выполняет асинхронное выполнение указанного URL-адреса с использованием указанного метода HTTP и заголовков. (См. https://msdn.microsoft.com/en-us/library/aa344901(v=vs.110).aspx)

Теперь я могу использовать errorUrl и изменять ответ так, как хочу

Другие вопросы по тегам