0

私の目標は、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 

は、予想されるヘッダを得るために私を助けてください。ありがとう

答えて

0

解決済み。クラスを作成して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ファイルに名前を追加しました。 Server.TransferRequestが 指定したHTTPメソッドとヘッダーを使用して指定されたURLの非同期実行を行うため

この問題が発生した(そこhttps://msdn.microsoft.com/en-us/library/aa719858(v=vs.71).aspx例を参照)。

は、今私はerrorUrlを使用して、私は

をしたいとレスポンスを変更することができます( https://msdn.microsoft.com/en-us/library/aa344901(v=vs.110).aspxを参照してください)
関連する問題