2017-03-27 11 views
1

json에서 세션 ID를 제공하지 않고 다른 페이지로 리디렉션하고 세션 ID를 쿠키로 제공하는 API 인증 방법을 호출하려고합니다. 여기 리디렉션 응답에서 쿠키를 가져올 수 없음

사이트 소유자가해야 할 날을 제안 것입니다 :

는 리디렉션을 수행하지 않는 클라이언트를 구성 • - 그 의미는 현재 페이지에서 당신을 유지하면 바로 URL을 •를 얻을 로그인 • 실패 당신이/색인 주로 리디렉션하는 경우에는 제대로 인증하고, 내가 리디렉션 URL을하지 않았다, 허위로 AllowAutoRedirect으로 시도 할 때 추가 요청

var webRequest = (HttpWebRequest)WebRequest.Create("https:\\URL"); 
     webRequest.UserAgent = 
      "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/53.0.2785.116 Safari/537.36"; 
     webRequest.Method = "POST"; 
     webRequest.Timeout = 60000; 
     webRequest.AllowAutoRedirect = true; 
     webRequest.CookieContainer = new CookieContainer(); 

     webRequest.ContentType = "application/x-www-form-urlencoded"; 

     webRequest.ContentLength = data.Length; 

     using (var stream = webRequest.GetRequestStream()) 
     { 
      stream.Write(data, 0, data.Length); 
     } 

     var response = (HttpWebResponse)webRequest.GetResponse(); 
     var test = response.ResponseUri; 

을 위해 쿠키를 유지할 수 있지만있어 쿠키. AllowAutoRedirect를 true로 설정하면 리디렉션 된 URL이 표시되지만 쿠키는 가져 오지 못합니다. AllowAutoRedirect를 false로 유지하는 경우 로깅이 성공하고 올바른 세션 ID를 쿠키로 얻었는지 어떻게 확인할 수 있습니까?

+0

우리는 대답 할 수없고 추측 만 할 수 있습니다. 당신은 당신이 가지고있는 인증 쿠키를 시험해야 할 것이다. 인증 요청을하고 쿠키를받은 후에는 동일한 쿠키 컨테이너를 사용하고 작동하는지 확인하는 더 많은 요청 (인증 없이는 작동하지 않는 요청)을 수행해야합니다. 이 무료 도구를 사용하여 웹 서버 트래픽을 검사 할 수 있습니다. http://www.telerik.com/fiddler – mortb

답변

0

나는 그것을 알아 냈다.

AllowAutoRedirect를 false로 설정하면 응답에 리디렉션 된 URL이 포함될 위치로 헤더가 추가됩니다. 위치에 리디렉션 된 URL이 있는데,이 시나리오에서는 http 응답이 302가되어야합니다.