如何首先使用代码将EF 5.0与成员资格提供程序集成?
我有自己的数据库架构,我想用它来注册用户等。
答案 0 :(得分:5)
与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);
上面的方法返回一个bool,如果为true,则登录成功。
在Web.config中,不需要像使用默认的ASP.NET成员资格一样定义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成员资格时执行此操作时遇到麻烦。 : - )
答案 1 :(得分:0)
http://msdn.microsoft.com/en-us/library/f1kyba5e
这实际上与EF无关。
EF只是一种读取数据的方式。
另请参阅FORMS身份验证 http://support.microsoft.com/kb/301240?wa=wsignin1.0