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

时间:2011-03-01 18:57:19

标签: asp.net facebook authentication asp.net-membership facebook-c#-sdk

编码平台:带有C#的ASP.NET 4.0 WebForms

我们有一个网站,其中包含由ASP.NET成员资格提供商管理的现有登录详细信息 现在客户想要添加Facebook Connect。

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

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

4 个答案:

答案 0 :(得分:6)

嗯,我认为你有两个选择。

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

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

HTH!

答案 1 :(得分:6)

等等,有一个关于codeplex的facebook开发者工具包吗?希望我知道。 :-P

我注意到,大多数允许您使用Facebook或电子邮件登录的网站只允许您执行其中一个或另外一个。例如,我有一个LivingSocial.com帐户 - 虽然他们提供FB我只能使用我的电子邮件登录(因为这是我的帐户创建方式)。我有一个BrazenCareerist帐户,但是我只能登录我的FB(即使他们支持电子邮件),因为该帐户是通过FB Connect / Open-Graph创建的。

我不喜欢这种方法,因为它感觉有限 - 所以我希望用户能够登录,但他们想要。你有4个流程:

  1. 用户使用FB注册网站,然后在返回时使用FB登录
  2. 用户注册FB,然后在返回时使用电子邮件登录
  3. 用户使用电子邮件注册,然后在返回时使用FB登录
  4. 用户使用电子邮件注册,然后在返回时使用电子邮件登录
  5. 如果他们使用Facebook注册,请抓住他们的电子邮件地址以供将来使用(通过FB API)。

    假设他们已在您的网站上注册,那么当他们使用FB登录时,无需请求密码。 (查看他们的文档http://developers.facebook.com/docs/authentication/

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

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

    希望有所帮助。

答案 2 :(得分:2)

CodePlex上的Facebook C#SDK项目提供了一些很棒的示例项目。我一直在使用的是CS-AspNetWebForms-RegistrationForm示例。它很容易遵循,但我有一些问题,如获取Facebook UserID。

这个难题的缺失部分是从Facebook注册中获取这些字段并将其推送到会员提供商。根据您的经验水平,不应该难以理解。

答案 3 :(得分:0)

我担心我的答案会有点不稳定,我还没有用它,也不知道它是否与facebook集成。但是,您可能会对Windows Identity Foundation感兴趣:http://msdn.microsoft.com/en-us/security/aa570351