我需要关于此的建议。在sqlmembership提供程序中设置facebook用户名
我使用Facebook连接和注册用户登录后(我将它们添加到我的数据库)。
我正在使用sqlmembership提供程序。 目前我正在获取Facebook用户全名并将其用作用户名。 但我遇到的问题是,如果2人具有相同的名称,它不会注册第二个用户。
我该如何处理用户名?我想追加facebook id,然后在网站中使用用户名时截断?有点丑陋,但想不到更好的方法。
有什么建议吗?
我需要关于此的建议。在sqlmembership提供程序中设置facebook用户名
我使用Facebook连接和注册用户登录后(我将它们添加到我的数据库)。
我正在使用sqlmembership提供程序。 目前我正在获取Facebook用户全名并将其用作用户名。 但我遇到的问题是,如果2人具有相同的名称,它不会注册第二个用户。
我该如何处理用户名?我想追加facebook id,然后在网站中使用用户名时截断?有点丑陋,但想不到更好的方法。
有什么建议吗?
您需要facebook ID;您可以将它存储在会话中,或者创建一个自定义IPrincipal和/或IIdentity并将其与用户信息一起存储。
HTH。
考虑创建一个自定义的Sql成员资格提供程序,我为自己的应用程序自己使用该方案,这样您就可以对要存储数据的方式进行细粒度控制。 看一看
http://www.asp.net/general/videos/how-do-i-create-a-custom-membership-provider
&
http://www.asp.net/general/videos/how-do-i-create-a-custom-profile-provider
为什么要使用一些很可能会改变(的人的名字)。人们结婚,或者为自己制造一些愚蠢的绰号,而这些绰号常常被一些人改变。
为什么不使用ID?你总是可以用另一个表格(SqlMembership之外的)来存储该用户的最近名字
我之前做过这个。
这是我的表:
FacebookUniqueID BIGINT, PRIMARY KEY
FacebookEmail NVARCHAR(100), NULL
我还可以存储其他东西进行审核,但是这是关键信息。
现在,你将总是获得Facebook用户ID。但你不会总是获取用户的电子邮件地址 - 因为他们可以拒绝访问 - 因此我允许NULL。
我存储电子邮件的原因是,唯一ID不足以将用户结婚直至系统中的用户。
在SqlMembershipProvider中,用户名通常是电子邮件地址。
所以我使用“FacebookEmail”字段来链接用户。
如果他们不允许你的电子邮件地址,你将无法执行单一的登录。 (例如,当他们通过Facebook验证后,会自动将他们签入您的网站)。
但至少如果他们最终授予您权限,您可以更新数据库中的电子邮件字段,然后执行单一登录。
HTH
如果我这样做,我应该如何处理显示不同的用户名。例如,我的网站注册用户将显示他们的用户名,而当我使用时会显示Facebook用户的facebookID:Context.User.Identity.Name – raklos 2010-12-23 13:06:48