2010-02-04 56 views
1

,我需要做一個簡單的程序,在給定的憑據某些網站記錄,然後導航至某個元素(鏈接)。 這甚至可能(我的意思是這個Authlogin的東西)?的HttpRequest:通過AuthLogin

編輯:抱歉 - 我在我的公司機器上,我無法點擊「投票」或「添加評論」 - 頁面顯示「完成,但頁面出現錯誤」(IE ..)。我很欣賞你的回答和評論,你幫了我很多!

+0

@Petr:我非常逗樂,看你從來沒有投票,或上或下,永遠!你確實知道你可以在答案旁邊的零點上方和下方按下那些箭頭? :P – 2010-02-04 09:07:33

+1

@Ruben,也許他也不讀評論。 – Benny 2010-02-04 09:16:34

+0

@Benny:嘿,讓我們不要啓動爭吵嗚嗚這裏 - 有些人沒有時間喋喋不休和評論整天:d至少他接受並計數的東西......(他將有大味道接受我的:D)也許我們需要一個「閱讀的評論」徽章去alonside他評論員之一[他已經]。任何見解,Petr:P – 2010-02-04 09:23:23

回答

0

這將一定程度上取決於登錄過程是如何管理的。這實際上是通過網絡表單完成的嗎?如果是這樣,您需要發佈表單,就像普通瀏覽器一樣。

如果它通過HTTP認證完成後,你應該能夠設置web請求的憑據,告訴它預先驗證,所有應該很好。

0

肯定。有可能的。

看到下面的代碼:

 HttpWebRequest req = (HttpWebRequest)HttpWebRequest.Create(uri); 
     req.AuthenticationLevel = System.Net.Security.AuthenticationLevel.MutualAuthRequested; 
     req.Credentials = new NetworkCredential("admin", "admin"); 
     req.PreAuthenticate = true; 
1

主要要做的事情是:

  1. 開始使用Fiddler看到需要發送和我們談論什麼樣的方式
  2. 假設什麼一個正常的網絡表單,您可能需要使用CookieContainerWebRequest s來接受來自登錄請求的cookie,然後在發送子查詢時重新提供它們ENT請求(例如上下文不會自動地由HttpWebRequest維護): -

    CookieContainer _cookieContainer = new CookieContainer(); 
    ((HttpWebRequest)request).CookieContainer = _cookieContainer;