2013-07-16 4 views
0

안녕하세요 아래 코드는 C#에서 헤더 속성을 캡처하기 위해 구현했습니다. 어떤 이유로 Firstname과 나머지 필드의 데이터 만 가져 오는 것은 null로 표시됩니다. 그들은 값을 가지고 있지만 어떤 이유로 그들은 null로 표시됩니다 알아요.http 헤더 속성을 캡처

// Load ServerVariable collection into NameValueCollection object. 
      System.Collections.Specialized.NameValueCollection headerdetails = Request.Headers; 

      List<string> requiredHeaders = new List<string>(); 
      requiredHeaders.Add("FirstName"); 
      requiredHeaders.Add("MiddleName"); 
      requiredHeaders.Add("LastName"); 
      requiredHeaders.Add("email"); 


      // Get names of all keys into a string array. 
      String[] arr1 = headerdetails.AllKeys; 
      for (int i = 0; i < arr1.Length; i++) 
      { 
       if (requiredHeaders.Contains(arr1[i])) 
       { 

        if (arr1[i] == "FirstName") 
        { 
         String[] arr2 = headerdetails.GetValues(arr1[i]); 
         for (int values = 0; values < arr2.Length; values++) 
         { 
          string firstname = Server.HtmlEncode(arr2[values]); 
          Session["firstName"] = firstname; 
         } 
        } 
        if (arr1[i] == "MiddleName") 
        { 
         String[] arr2 = headerdetails.GetValues(arr1[i]); 
         for (int values = 0; values < arr2.Length; values++) 
         { 
          string middlename = Server.HtmlEncode(arr2[values]); 
          Session["middleName"] = middlename; 
         } 
        } 
        if (arr1[i] == "LastName") 
        { 
         String[] arr2 = headerdetails.GetValues(arr1[i]); 
         for (int values = 0; values < arr2.Length; values++) 
         { 
          string lastname = Server.HtmlEncode(arr2[values]); 
          Session["lastName"] = lastname; 
         } 
        } 
        if (arr1[i] == "email") 
        { 
         String[] arr2 = headerdetails.GetValues(arr1[i]); 
         for (int values = 0; values < arr2.Length; values++) 
         { 
          string email = Server.HtmlEncode(arr2[values]); 
          Session["emailID"] = email; 
         } 
        } 
+0

사이트에 액세스하는 클라이언트의 헤더가 필요합니까? 왜? 이것들은 표준 헤더가 아니며, 클라이언트가이를 보낼 수 있도록하기 위해 어떤 메커니즘을 갖추고 있습니까? 실제 문제가 발생하면 어떤 디버깅을 했습니까? 클라이언트가 요청에서이 헤더를 보내도록 보장 했습니까? 이 코드를 서버 측에서 실행하면 어디가 잘못됩니까? – David

+0

예, 클라이언트가이 헤더를 보냅니다. 나는 그들도 내 기록에 잡혔습니다. –

답변

1

나는 내 실수를 알아 냈습니다. 둠 하나, 루프 내에서 response.redirect가 있었고 따라서 나는 오직 이름을 얻고있었습니다. 추신 : 자신에 대한 참고 사항 - 자영업 시간이 오래 걸리지 않았습니다.

+0

내가 말하려고했는데, 상자를 확인해 봤어. 머리글을 정의한 것과 정확히 일치해야합니다. 대등성을 대소 문자를 구분하지 않는 일치로 변경하고자 할 수 있습니다. –