C# webclient未登录到facebook

C# webclient未登录到facebook,c#,forms,login,webclient,C#,Forms,Login,Webclient,我尝试使用webclient登录facebook,但它的“刚刚返回”登录页面没有登录到facebook。我的代码有什么问题 System.Collections.Specialized.NameValueCollection collection = new System.Collections.Specialized.NameValueCollection(); collection.Add("email", "sadasfasdaddsfadfdf"); collection.Add("pa

我尝试使用webclient登录facebook,但它的“刚刚返回”登录页面没有登录到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");

你有没有看过当你点击Facebook上的登录按钮时浏览器会通过什么?我看到他们传递了一些额外的数据,可能是防伪令牌之类的东西。你为什么要用这种方式登录web客户端?你的目标是什么? 你考虑过Facebook的C#SDK吗?

如果查看登录表单源,您将注意到其他隐藏元素:

<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"/>


我不知道这些领域的意义,但我认为其中一些领域是为了安全而存在的,你无法预测它们的价值。所以,您需要首先请求登录页面,获取这些值,然后使用web客户端发送登录请求

事实上,这将是我的一个例子,我将申请另一个我使用facebook的网站,因为我认为我将是一个共同的问题。是的,当我单击“登录”时,它返回给我该站点,但我从文档中获取了该值,该值每次都包含value=“n”,但导航时会发送一些其他值,我在哪里可以找到真正的值,请帮助我