2011-06-09 98 views
0

我完全新手在身份验证与OAuth进程(我试图使用OAuth 2,完全),以及我通过使用Facebook进行身份验证的示例SDK最新的版本说,该代码段应为C#.NET环境中工作(http://blog.prabir.me/post/Facebook-CSharp-SDK-Writing-your-first-Facebook-Application.aspx):Facebook C#SDK:OAuth 2在Silverlight 4浏览器应用程序

webBrowser.Navigate(loginUrl); 

private void webBrowser_Navigated(object sender, WebBrowserNavigatedEventArgs e) 
{ 
    FacebookOAuthResult result; 
    if (FacebookOAuthResult.TryParse(e.Url, out result)) 
    { 
     if (result.IsSuccess)   
     { 
     var accesstoken = result.AccessToken;   
     } 

     else 
     { 
     var errorDescription = result.ErrorDescription; 
     var errorReason = result.ErrorReason; 
     } 
    } 
} 

因为我编程浏览器SL应用程序,WebBrowser控件显示任何内容,所以我也不能够赶上回应,我怎么能做到与我的应用程序相同的东西?或者如果没有相应的方法,我怎么能完成认证过程?谢谢!

回答

0

一个建议:为什么当你收到它时不试图解析WebResponse而不是听事件呢?

我在我的web应用程序中使用Facebook OAuth。这只不过是一系列具有正确参数的URL帖子。

看看这篇文章:Login using Facebook Problem after logging out(所有的细节都在回答和评论)

下面是简要的步骤:

  1. 呼叫Facebook的OAuth的对话网址与你的AppId,重定向网址和权限。 Request_type应为“代码”
  2. 当用户登录并授权您的应用程序时,它们将通过“code”querystring参数重定向到重定向url。
  3. 取出代码参数的值,并再次调用Facebook来获取令牌。
  4. 使用此令牌代表用户拨打电话。
+0

我设法按照这些步骤完成身份验证过程,但将request_type设置为“token”,谢谢! – Evenstar 2011-06-10 10:22:14

+0

我强调“代码”的唯一原因是出于安全原因。 “标记”请求类型嵌入在查询字符串中,因此不安全。它很容易拦截。使用“代码”,您必须进行另一次POST调用才能获取令牌,这更安全。您还可以使用“状态”参数来提高安全性。 – dotnetster 2011-06-10 14:02:34

+0

虽然,我很高兴你的工作。 – dotnetster 2011-06-10 14:03:02

相关问题