2014-01-30 130 views
0

我嘗試登錄facebook與webclient,但它只是返回登錄頁面,它不是loged到Facebook。我的代碼有什麼問題?webclient無法登錄Facebook

System.Collections.Specialized.NameValueCollection collection = new System.Collections.Specialized.NameValueCollection(); 
collection.Add("email", "sadasfasdaddsfadfdf"); 
collection.Add("pass", "54"); 
client.Proxy = null; 
byte[] result = client.UploadValues("https://www.facebook.com/login.php?login_attempt=1", "POST", collection); 
System.IO.File.WriteAllBytes("result.html", result); 
System.Diagnostics.Process.Start("result.html"); 

回答

1

你看過點擊Facebook登錄按鈕時瀏覽器通過了什麼嗎?我看到他們傳遞了一些額外的數據,可能是反僞造令牌等等。爲什麼你想用這種方式登錄Web客戶端?你的目標是什麼? 你考慮過Facebook C#SDK嗎? http://facebooksdk.net/

如果你看一下登錄表單源,你會發現更多的隱藏要素:

<input name="lsd" type="hidden" autocomplete="off" value="AVqRJE3k"/> 
<input name="lgnrnd" type="hidden" value="100127_w8ha"/> 
<input name="lgnjs" id="lgnjs" type="hidden" value="1391191287"/> 

我不知道這些字段的含義,但我覺得有些人在那裏住了secutrity和你無法預測它們的價值。因此,您需要先請求登錄頁面,獲取這些值,然後使用Web客戶端發送您的登錄請求。

+0

其實它會成爲我的例子我將適用於另一個網站我使用Facebook,因爲我認爲我將是常見問題。是的,它返回我的網站,當我點擊登錄buton –

+0

我從文檔,其中包含值=「n」,每次獲得此值 但在導航時發送了一些其他值,我在哪裏可以找到真正的值,請幫助我 – Charlie