2011-03-06 21 views

回答

2

如果你正在談論ASP.NET Forms Authentication這將是一個兩個步驟的過程:

  1. 將HTTP請求發送到登錄頁面發送的用戶名和密碼,並捕捉身份驗證cookie發送由服務器
  2. 發送一個HTTP請求到腳本,返回發送驗證cookie的XML文件以及請求

下面是使用自定義WebClient一個例子:

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

    protected override WebRequest GetWebRequest(Uri address) 
    { 
     var request = base.GetWebRequest(address) as HttpWebRequest; 
     request.CookieContainer = Cookies; 
     return request; 
    } 
} 

class Program 
{ 
    static void Main() 
    { 
     using (var client = new CookieAwareWebClient()) 
     { 
      client.UploadValues("http://www.foo.com/login.aspx", new NameValueCollection 
      { 
       { "username", "foo" }, 
       { "password", "secret" }, 
      }); 
      client.DownloadFile("http://www.foo.com/foo.xml", "foo.xml"); 
     } 
    } 
} 
在現實生活中的事情

當然,因爲根據該網站上,你可能需要沿着ViewState中,並與沿其他ASP.NET具體廢話送可能更復雜請求。

+0

這就是我所害怕的。這意味着我們必須跟蹤登錄頁面和編輯框來填充。科索沃解放軍。 – 2011-03-06 20:26:57

1

發佈證書在HTTP請求,在響應會有你有重用你的下一個請求

1

你將不得不在使用的HttpWebRequest/HTTPWebResponse大致有以下步驟的驗證cookie :

1:使用請求將用戶名和密碼提交到網站 2:保存Cookies(我認爲cookie將包含登錄工作的確定) 3:使用另一個請求,包括這些cookie,獲取XML。

要查找初始請求的代碼,您需要查看登錄頁面的源代碼以查看提交操作,然後通過請求重現此操作。您可以使用提琴手或螢火蟲等來幫助解決這個問題。

相關問題