2011-06-09 101 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

相關問題