2012-11-20 46 views
0

我正在嘗試構建c#應用程序,它在網站中存在「更新」時通知我。 網站登錄表單包含3個文本框,它是login.aspx。從c#應用程序連接到.aspx網站

我的問題是,如何將3個細節「發送」到站點並從我想在c#中構建的應用程序進行連接(身份驗證),如果可能的話,我該怎麼做? 我尋找任何指南或東西閱讀關於這個,但沒有找到。

+0

您需要模擬Web瀏覽器的行爲,例如:身份驗證,cookie和重定向。所以WebClient類可能會幫助你 – pylover

回答

0

First you need post a form using c#

HttpWebRequest request = (HttpWebRequest)WebRequest.Create (args[0]); 

      // Set some reasonable limits on resources used by this request 
      request.MaximumAutomaticRedirections = 4; 
      request.MaximumResponseHeadersLength = 4; 
      // Set credentials to use for this request. 
      request.Credentials = CredentialCache.DefaultCredentials; 
      HttpWebResponse response = (HttpWebResponse)request.GetResponse(); 

      Console.WriteLine ("Content length is {0}", response.ContentLength); 
      Console.WriteLine ("Content type is {0}", response.ContentType); 

      // Get the stream associated with the response. 
      Stream receiveStream = response.GetResponseStream(); 

      // Pipes the stream to a higher level stream reader with the required encoding format. 
      StreamReader readStream = new StreamReader (receiveStream, Encoding.UTF8); 

      Console.WriteLine ("Response stream received."); 
      Console.WriteLine (readStream.ReadToEnd()); 
      response.Close(); 
      readStream.Close(); 

then try to save cookie, its required to store aspnet_session_id into client for future requests

private class CookieAwareWebClient : WebClient 
{ 
    public CookieAwareWebClient() 
     : this(new CookieContainer()) 
    { } 
    public CookieAwareWebClient(CookieContainer c) 
    { 
     this.CookieContainer = c; 
    } 
    public CookieContainer CookieContainer { get; set; } 

    protected override WebRequest GetWebRequest(Uri address) 
    { 
     WebRequest request = base.GetWebRequest(address); 
     if (request is HttpWebRequest) 
     { 
      (request as HttpWebRequest).CookieContainer = this.CookieContainer; 
     } 
     return request; 
    } 
} 

一個很好的例子可以找到確保您發送的和每個請求恢復aspnet_session_id 。 和賓果!

我建議您閱讀this

相關問題