2

如何首先使用代码将 EF 5.0 与会员提供程序集成?

我有自己的数据库模式,我想用它来注册用户等。

4

2 回答 2

5

你应该看看SimpleMembershipProvider

与 EF 一起使用非常容易。

更新

对于 MVC4,我将从空白模板开始。

你需要WebSecurity.InitializeDatabaseConnection设置数据库。

WebSecurity.InitializeDatabaseConnection("DefaultConnection", "Users", "Id", "UserName", true);

它将连接字符串的名称、表、唯​​一标识符列和用户名列作为参数。

我用于上面这段代码的模型是:

[Table("Users")]
public class User
{
    [Key]
    [DatabaseGenerated(DatabaseGeneratedOption.Identity)]
    public int Id { get; set; }

    [Required]
    public string UserName { get; set; }

    public string Email { get; set; }

    public string FirstName { get; set; }

    public string LastName { get; set; }
}

让某人登录:

 WebSecurity.Login(aUsername, aPassword);

上面的方法返回一个布尔值,如果为真,则登录成功。

在 Web.config 中,您不需要像使用默认 ASP.NET Membership 那样定义membershipProvider。

如果您需要访问提供商(删除帐户):

var provider = (SimpleMembershipProvider) Membership.Provider;
provider.DeleteAccount(aUsername); // Delete the account
provider.DeleteUser(aUsername, true); // delete the user and its data

用于创建新用户(在这种情况下使用我给定的模型)

WebSecurity.CreateUserAndAccount(aUsername, aPassword, new { Email = aEmail, FirstName = aFirstName, LastName = aLastName });

好处是,您现在可以将您的模型用于其他 EF 类作为外键,而当您想使用普通的 asp.net 成员身份执行此操作时,您无需麻烦。:-)

于 2013-02-03T12:09:00.287 回答
0

http://msdn.microsoft.com/en-us/library/f1kyba5e

这实际上与EF无关。

EF只是一种读取数据的方式。

另请参阅表单身份验证 http://support.microsoft.com/kb/301240?wa=wsignin1.0

于 2013-02-03T12:08:36.293 回答