2012-10-04 2 views
1

나는 C#으로 권한 부여 관리 모듈을 코딩하고 있습니다. 자격 증명은 http 헤더에서 추출됩니다. 내 문제는 : http 헤더가 어떻게 보이는지 (txt 파일) 정의 만 있습니다. 내가테스트 용 사용자 지정 http 헤더 만들기 -

와 page2.aspx의 pageload의 헤더를 읽을 때

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

과보다 : 그래서 (default.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

관련 문제