2012-10-04 106 views
1

我正在用c#編寫授權管理模塊。憑據將從http頭中提取。 我的問題是: 我只定義了http標題的樣子(txt文件)。所以我需要在測試的代碼準備的標題,(添加鍵和值到Default.aspx中的報頭):創建自定義http頭測試 -

Response.AppendHeader("contractualData", "03346-b0-t-vg"); 
Response.AppendHeader("Location", "Default.aspx"); 
Response.Redirect("page2.aspx"); 

和比當我讀page2.aspx頁面加載頭與

Request.Headers["contractualData"]; 

我看不到新添加的鍵和值(我可以看到它在IEWatch的響應頭中,但是我不能用request.headers讀它,我也嘗試過使用Response.AddHeader或Response.Headers。添加相同的行爲!)我應該怎麼做?

一般來說,我該如何準備一個自定義標題並使用該標題測試我的代碼?

回答

1

我找到了解決方案。創建請求標題併發布它。以下代碼有效:

protected void Page_Load(object sender, EventArgs e) 

     { 


      string path = Request.Url.Scheme + "://" + Request.Url.Host + ":" + Request.Url.Port + "/"; 

      myRedirect(path + "TestRedirectTo.aspx", "test", "testValue"); 

     } 

     protected void myRedirect(string url, string headerName, string headerValue) 

     { 

      Response.Clear(); 

      System.Net.WebRequest request = System.Net.WebRequest.Create(url); 

      request.Headers.Add(headerName, headerValue); 

      System.Net.WebResponse response = request.GetResponse(); 

      System.IO.StreamReader sr = new System.IO.StreamReader(response.GetResponseStream(), System.Text.Encoding.Default); 


      string content = sr.ReadToEnd(); 

      sr.Close(); 

      Response.Write(content); 

      sr.Close(); 

      Response.End(); 

     } 
0

除非我讓事情反向 - 在發送頁面請求用於發送標題。在接收頁面請求中應該用來讀取它們。

+0

這聽起來不對。你能解釋一下你的意思嗎? Request.Headers.Add()給出System.PlatformNotSupportedException:此平臺不支持操作。 – EngelbertCoder