2011-11-28 4 views
1

PHP 페이지가 있습니다. http://www.aaaa.org/login.phptextboxes (name = "username"및 name = "password")이라는 두 개의 버튼과 버튼이 있습니다. 그리고 내 .aspx 페이지에서 .php 페이지에 로그인하고 싶습니다. 일단 로그인하면 서브 페이지 http://www.aaaa.org/details.php?id=1234의 일부 내용을 검색하고 구문 분석하려고합니다. 일부 코드를 시도했지만 login.php 페이지의 내용을 검색하므로 전혀 로그인 할 수 없다고 가정합니다. 정확한 코드를 어떻게 표시 할 수 있습니까? 언어는 C#입니다.다른 웹 사이트에 로그인하고 데이터를 구문 분석하십시오.

+0

가 보자 시도한 코드는 정확히 어떻게 작동하지 않습니다. –

+0

버튼을 클릭했을 때 login.php처럼 "게시"를해야합니다. 텍스트 상자와 버튼의 이름이 필요합니다 (보기 소스를 작성하십시오). 누군가 변경하면 코드가 작동을 멈 춥니 다. 그것은 취성이 있지만 가끔은 선택의 여지가 없습니다. –

+0

내 시도 중 하나 : http://img191.imageshack.us/img191/850/code1a.png – Tomo84

답변

0

이렇게하려면 HTTPClient 라이브러리를 사용할 수 있습니다. 다음과 같이 입력하십시오 : http://www.codescales.com/

이렇게하면 클라이언트 응용 프로그램에 로그인하여 액세스 할 수 있습니다. 응용 프로그램이 깨지기 쉽고 웹 응용 프로그램의 영향을받으며 변경됩니다. 따라서 필드 이름을 변경하면 앱도 변경해야합니다. 그러나 그것은 당신이 성취하려는 것을 위해 효과가있을 것입니다.

나는 이것을 별도의 라이브러리로 작성하고 ASPX 코드에는 직접 쓰지 않을 것을 제안합니다.

0
protected void Page_Load(object sender, EventArgs e) 
    { 
     WebClient req = new WebClient(); 

     CredentialCache myCache = new CredentialCache(); 
     //myCache.Add(new Uri("http://www.aaaa.org/login.php"), "Basic", new NetworkCredential("login", "passw")); 
     myCache.Add(new Uri("http://www.aaaa.org/login.php"), "Digest", new NetworkCredential("login", "passw")); 

     req.Credentials = myCache; 

     string results; 
     results = System.Text.Encoding.UTF8.GetString(req.DownloadData("http://www.aaaa.org/login.php")); 
    } 

     protected void Button1_Click(object sender, EventArgs e) 
    { 
     string TheUrl = "http://www.aaaa.org/details.php?id=2923"; 
     string response = GetHtmlPage(TheUrl); 
     TextBox2.Text = response; 
    } 

---------------- 업데이트 : -----------------

protected void Page_Load(object sender, EventArgs e) 
    { 
     WebClient req = new WebClient(); 

     CredentialCache myCache = new CredentialCache(); 
     myCache.Add(new Uri("http://www.aaaa.org/login.php"), "Basic", new NetworkCredential("login", "passw")); 

     NameValueCollection postData = new NameValueCollection(); 
     postData.Add("username", "login"); 
     postData.Add("password", "passw"); 
     req.UploadValues("http://www.aaaa.org/login.php", postData); 

     req.Credentials = myCache; 

     string results; 
     results = System.Text.Encoding.UTF8.GetString(req.DownloadData("http://www.aaaa.org/login.php")); 
관련 문제