将Facebook身份验证与现有ASP.NET成员身份集成

nav*_*een 19 asp.net authentication facebook asp.net-membership facebook-c#-sdk

编码平台:使用C#的ASP.NET 4.0 WebForms

我们有一个网站,其中包含由ASP.NET Membership Provider管理的现有登录详细信息.
现在客户想要添加Facebook Connect.

所以在注册时我会使用Facebook按钮进行注册.
如何继续将facebook的成功身份验证集成到我的会员提供商?

我计划在ASP.NET成员资格中创建一个具有唯一标识符的用户名作为新用户,并将其链接到包含其他open-id用户的另一个表(将来我们计划扩展到Google,Twitter,Live和所有用户) ).这是最好的方法吗?

Man*_*era 6

好吧,我认为你有两个选择.

选项A: 使用Facebook注册插件,然后将用户注册为普通用户,即没有FB用户ID存储到数据库中,您只有一种类型的用户.

选项B:在FB connect中 询问电子邮件权限并获取用户电子邮件,以便与您的用户表进行比较并进行匹配(您的用户表ID为FB uid),以防它在您的数据库中找到.

HTH!

  • 您只会在他们第一次访问,登录或注册您的网站时比较该电子邮件.完成后,您可以将Facebook UID与您网站的帐户相关联,并且以下邮件更改不会影响您,因为您可以使用FB UID进行比较. (4认同)

小智 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/)

如果他们使用他们的电子邮件地址登录,他们将需要输入密码.如果用他们的电子邮件地址注册UP,他们可能会创建; 但诀窍是,如果他们注册FB,他们可能没有密码.

我创建了一个页面,在FB注册后,要求输入密码.它提供了一个友好的消息,如"恭喜!您在[我们的网站]上的帐户已创建.为了您的隐私,Facebook不告诉我们您的密码是什么.请为下面的[我们的网站]创建一个密码.(只要你登录Facebook,你永远不会用这个.)"

希望有所帮助.