编码平台:带有C#的ASP.NET 4.0 WebForms
我们有一个网站,其中包含由ASP.NET成员资格提供商管理的现有登录详细信息 现在客户想要添加Facebook Connect。
所以在注册时我会使用Facebook按钮进行注册 如何继续将facebook的成功身份验证集成到我的会员提供商?
我计划在ASP.NET成员资格中创建一个具有唯一标识符的用户名作为新用户,并将其链接到包含其他open-id用户的另一个表(将来我们计划扩展到Google,Twitter,生活和所有)。这是最好的方法吗?
答案 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个流程:
如果他们使用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