2010-12-23 39 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