2008-09-14 5 views
1

이 질문은 ASPX 페이지에서 HTML을 가져 오는 것에 대한 내 previous question의 후속 조치입니다. webclient 객체를 사용하기로 결정했지만 로그인이 필요하므로 로그인 페이지의 HTML을 가져 오는 것이 문제입니다. 웹 클라이언트 객체를 사용하여 "로그인"했습니다 :로그인 페이지에서 HTML 가져 오기

WebClient ww = new WebClient(); 

ww.DownloadString("Login.aspx?UserName=&Password="); 

string html = ww.DownloadString("Internal.aspx"); 

그러나 여전히 로그인 페이지가 계속 표시됩니다. 나는 사용자 이름 정보가 쿠키에 저장되지 않는다는 것을 안다. 나는 틀린 일을하거나 중요한 부분을 빠뜨려야합니다. 누구든지 그것이 무엇인지 알 수 있습니까?

답변

1

주어진 URI에 유효한 로그인 매개 변수를 전달하기 만하면됩니다. 너를 도와 줘야 해.

로그인 정보가 없으면이를 우회하려고해서는 안됩니다. LiveHttpHeaders 플러그인

public static string HttpPost(string URI, string Parameters) 
     { 
     System.Net.WebRequest req = System.Net.WebRequest.Create(URI); 
     req.ContentType = "application/x-www-form-urlencoded"; 
     req.Method = "POST"; 
     byte[] bytes = System.Text.Encoding.ASCII.GetBytes(Parameters); 
     req.ContentLength = bytes.Length; 
     System.IO.Stream os = req.GetRequestStream(); 
     os.Write(bytes, 0, bytes.Length); 
     os.Close(); 
     System.Net.WebResponse resp = req.GetResponse(); 
     if (resp == null) return null; 
     System.IO.StreamReader sr = new System.IO.StreamReader(resp.GetResponseStream()); 
     return sr.ReadToEnd().Trim(); 
     } 
1

"Login.aspx? UserName = & Password ="normaly work? "로 브라우저에서 페이지를 열지 못하나요?
일부 페이지는 URL에 제공된 데이터를 사용하여 로그인 할 수 없으며 페이지의 로그인 양식에 입력하고 제출해야합니다.

0

@ Fire Lancer : 테스트 도중 동일한 질문을했기 때문에 브라우저에서 확인했습니다.

2

웹 클라이언트 개체의 자격 증명 속성을 설정 시도

WebClient ww = new WebClient(); 
ww.Credentials = CredentialCache.DefaultCredentials; 
ww.DownloadString("Login.aspx?UserName=&Password="); 
string html = ww.DownloadString("Internal.aspx"); 
1

그때 생각 웹 페이지가 의도적에서 loggin에에서 그것을 차단하는 것입니다 수있는 유일한 다른 이유. 당신이 코드에 액세스 할 수있는 경우, 그러한 로그인을 차단하도록 설계된 것이 있는지 확인하는 데 사용 된 로그인 시스템을 살펴보십시오.

0

내가 얻으려고했던 aspx 페이지가 내 자신의 projct에 있었기 때문에 Server.Execute 메서드를 사용할 수있었습니다. my answer 내 원래의 질문에

0

사용 파이어 폭스.
이렇게하면 실제 브라우저를 통해 로그인하여 서버로 전송되는 내용을 정확히 볼 수 있습니다. 내 첫 질문은 양식에서 POST를 기대하지 않는다는 것을 확인하는 것입니다. 로드중인 예제 URL은 쿼리 문자열 GET을 통해 정보를 전송합니다.

1

Fiddler을 사용하면 브라우저를 통해 수동으로 수행 할 때 발생하는 HTTP 요청 및 응답을 볼 수 있습니다.

관련 문제