19

編碼平臺整合Facebook的身份驗證:ASP.NET 4.0 Web窗體與C#與現有的ASP.NET成員

我們必須與ASP.NET成員資格提供管理現有的登錄信息網站。
現在客戶想要添加Facebook連接到它。

所以在註冊時,我使用Facebook按鈕給註冊。
我應該如何着手將Facebook的成功認證集成到我的會員供應商?

我的計劃是創建一個具有唯一標識符的用戶名作爲ASP.NET Membership中的新用戶,並將其鏈接到另一個包含其他open-id用戶的表(將來我們計劃擴展到Google,Twitter ,Live和全部)。這是最好的方法嗎?

+1

我已經創建了一個簡單的教程,將Facebook身份驗證與現有的ASP.Net成員關聯起來。看看這個[鏈接](http://niftyandcrackerjack.com/asp-net-membership-with-facebook-authentication-part-two)。 – 2011-12-12 01:14:24

+0

以下鏈接確實有幫助:http://withasp.net/facebook-authentication-with-asp-net/ – 2012-10-28 05:35:34

+2

以上兩個鏈接都被打破 – CodeToad 2015-08-17 11:38:48

回答

6

嗯,我認爲你在這裏有兩個選擇。

選項A: 使用Facebook Registration Plugin,然後登記爲普通用戶,即沒有FB用戶ID的用戶存儲到數據庫,你只有一種類型的用戶。

選項B: 詢問你的FB中email permission連接,並獲取用戶的電子郵件,以比較對你的用戶表,並進行匹配(與FB UID user表ID)的情況下,它的發現爲你的數據庫。

HTH!

+1

由於Facebook允許我們更改電子郵件ID,因此電子郵件許可存在輕微問題。 – naveen 2011-03-25 05:21:55

+4

您只會在第一次訪問,登錄或註冊您的網站時比較電子郵件。一旦完成,您可以將Facebook UID與您網站的帳戶相關聯,並且以下郵件更改不會影響您,因爲您可以使用FB UID進行比較。 – 2011-03-25 09:24:43

+0

是的,我明白了...... – naveen 2011-03-25 09:32:54

6

等等,這裏有一個關於codeplex的facebook開發工具包嗎?希望我知道這一點。 :-p

我注意到,大多數網站,讓你登錄Facebook或您的電子郵件只會讓你做一個或其他。例如,我有一個LivingSocial.com帳戶 - 雖然他們提供FB,但我只能使用我的電子郵件登錄(因爲這是我的帳戶的創建方式)。我有一個BrazenCareerist帳戶,但是讓我只用我的FB登錄(即使他們支持電子郵件),因爲該帳戶是通過FB Connect/Open-Graph創建的。

我不喜歡這種方法,因爲它感覺有限制 - 所以我希望用戶能夠登錄,但他們想要的。你有4流向:

  1. 用戶註冊本站FB,然後跡象在FB上的回報
  2. 用戶註冊FB,然後跡象在電子郵件上的回報
  3. 用戶註冊使用電子郵件然後跡象在FB上的回報
  4. 用戶註冊的電子郵件,然後跡象在電子郵件上的回報

如果再籤與Facebook,抓住他們的電子郵件地址,以供將來使用(通過FB API) 。

假設他們已經在您的網站上註冊,那麼當他們使用FB登錄時,不需要請求密碼。(查看他們的文檔http://developers.facebook.com/docs/authentication/

如果他們用他們的電子郵件地址登錄,他們需要輸入密碼。如果他們用自己的電子郵件地址註冊,他們可能會創建它們但訣竅是,如果他們與FB簽約,他們可能沒有密碼。

我創建了一個頁面,在FB註冊時,要求輸入密碼。它提供了一個友好的信息,如「恭喜!您在[我們的網站]上的帳戶已創建。爲了您的隱私,Facebook不會告訴我們您的密碼是什麼。請在下面爲[我們的網站]創建一個密碼。用facebook登錄,你永遠不會使用這個)。「

希望有所幫助。

+0

不可能戴夫。那麼從哪裏我會拉用戶名,並確保其獨特?我想像他們合併openid的stackoverflow模型。我的直覺是,stackoverflow爲每個新註冊生成一個用戶並將開放ID鏈接到它。順便說一句,http://facebooktoolkit.codeplex.com/現在是obslete http://facebooktoolkit.codeplex.com/是大多數開發人員現在使用的sdk。 – naveen 2011-03-25 05:21:00

+0

好點 - 我正在考慮一個系統,其中「用戶名」是電子郵件地址,Facebook連接帳戶的電子郵件帳戶與他們試圖在您的網站上嘗試連接的帳戶相同。在那種情況下,我認爲它會起作用 - 但這是一個有限的用例,就像你指出的那樣,並不總是適用。 – 2011-03-28 21:53:33

+1

我相信http://facebooksdk.codeplex.com是正確的CodePlex項目,Naveen – GrahamMc 2011-05-13 18:33:39

2

CodePlex上的Facebook C#SDK項目提供了一些非常棒的示例項目。我一直在使用的是CS-AspNetWebForms-RegistrationForm示例。很容易就可以跟蹤,但我有幾個問題需要掌握Facebook用戶名。

謎題的缺失部分是從Facebook註冊中獲得的那些字段,並將這些字段推送給成員資格提供程序。根據你的經驗水平,這不應該很難解決。