2014-01-30 94 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