MVC3,实体框架,OpenID和MembershipProvider

时间:2012-03-10 16:00:13

标签: asp.net-mvc-3 entity-framework-4 asp.net-membership openid membership-provider

我正在创建一个使用EF Code First方法的项目,现在我必须创建用户。我想实现OpenID,因为它非常酷而且很现代。有很多关于如何做到这一点的教程(没有阅读它们,但我当然会这样做)。

我现在非常习惯于EF和MVC,但所有与成员,角色,提供者等有关的东西都是模糊的。我确定有两件事:

  • 我想使用OpenID和
  • 我想用EF Code First管理用户表

所以如果有人能给我一些提示,我将不胜感激:

  • 我是否必须实施MembershipProvider,或者我可以使用类似这样的项目:codeplex
  • OpenID,EF和会员资格如何相互配合?

我知道这是非常广泛的主题,但我只需要基本的提示,我需要知道从哪里开始。像“你可以使用MembershipProvider和OpenID,但你最好不要,因为......”。

非常感谢任何帮助。

1 个答案:

答案 0 :(得分:4)

  

要求是用户能够使用facebook,yahoo登录   和其他人一样,因为到处创建帐户非常烦人。

我们正在考虑为我们的用户提供多个身份验证选项,无论是您管理的用户名和密码组合,OpenId提供商还是OAuth提供商。

我发现最好的方法是明确这两个概念(成员资格和身份验证)。

  

我并不在乎,用户如何验证,只是提供我   可以找到他们的用户信息。

使用包含以下信息的User表的简单方法:

Name
Email
Authentication Type
Authentication Id

示例:

Name        Email       AuthenticationType      AuthenticationId
----        -------     ------------------      ----------------    
John        a@b.com     GoogleOpenId            OpenIdClaimId
Ben         c@d.com     Internal                ben
Dave        e@f.com     FacebookOAuth           FacebookUserId

当用户进行身份验证时,我们可以使用身份验证方法和id作为条件加载其用户信息。对于内部会员提供商,我们可以使用他们的用户名,OpenId他们的索赔URL和OAuth他们的提供者ID(例如Twitter id)。

所以务必使用EF管理您的用户,但我会将会员提供商视为另一种身份验证机制,在这种情况下,您也可以使用标准的SqlMembershipProvider。

我很久以前写过this post(在电子商务商店的背景下)可能会有所帮助。

相关问题