2010-12-23 42 views
1

我需要關於此的建議。在sqlmembership提供程序中設置facebook用戶名

我使用Facebook連接和註冊用戶登錄後(我將它們添加到我的數據庫)。

我正在使用sqlmembership提供程序。 目前我正在獲取Facebook用戶全名並將其用作用戶名。 但我遇到的問題是,如果2人具有相同的名稱,它不會註冊第二個用戶。

我該如何處理用戶名?我想追加facebook id,然後在網站中使用用戶名時截斷?有點醜陋,但想不到更好的方法。

有什麼建議嗎?

回答

0

您需要facebook ID;您可以將它存儲在會話中,或者創建一個自定義IPrincipal和/或IIdentity並將其與用戶信息一起存儲。

HTH。

0

爲什麼要使用一些很可能會改變(的人的名字)。人們結婚,或者爲自己製造一些愚蠢的綽號,而這些綽號常常被一些人改變。

爲什麼不使用ID?你總是可以用另一個表格(SqlMembership之外的)來存儲該用戶的最近名字

+0

如果我這樣做,我應該如何處理顯示不同的用戶名。例如,我的網站註冊用戶將顯示他們的用戶名,而當我使用時會顯示Facebook用戶的facebookID:Context.User.Identity.Name – raklos 2010-12-23 13:06:48

0

我之前做過這個。

這是我的表:

FacebookUniqueID BIGINT, PRIMARY KEY 
FacebookEmail NVARCHAR(100), NULL 

我還可以存儲其他東西進行審覈,但是這是關鍵信息。

現在,你將總是獲得Facebook用戶ID。但你不會總是獲取用戶的電子郵件地址 - 因爲他們可以拒絕訪問 - 因此我允許NULL。

我存儲電子郵件的原因是,唯一ID不足以將用戶結婚直至系統中的用戶。

在SqlMembershipProvider中,用戶名通常是電子郵件地址。

所以我使用「FacebookEmail」字段來鏈接用戶。

如果他們不允許你的電子郵件地址,你將無法執行單一的登錄。 (例如,當他們通過Facebook驗證後,會自動將他們簽入您的網站)。

但至少如果他們最終授予您權限,您可以更新數據庫中的電子郵件字段,然後執行單一登錄。

HTH