代码优先会员提供者
Posted
技术标签:
【中文标题】代码优先会员提供者【英文标题】:code first membership provider 【发布时间】:2013-02-03 11:57:33 【问题描述】:如何先使用代码将 EF 5.0 与会员提供程序集成?
我有自己的数据库架构,我想用它来注册用户等。
【问题讨论】:
【参考方案1】:你应该看看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 成员身份执行此操作时,您无需麻烦。 :-)
【讨论】:
嗨,如果您使用 mvc 4 互联网应用程序模板。您会修改什么以使其使用您的数据库架构/EF 模型? +1 好点,创建一个 MVC4 互联网应用类型的新项目。这是开始 web.config 中“设置”的好地方。 我更新了我的答案。就我个人而言,我会使用空白模板,因为大多数时候我会从默认的 Internet 模板中删除很多内容,因为我不需要它或者我需要将它移动到其他类/命名空间,这样我可以自己更快地使用它:) 嗨,您的用户表,是自动生成的代码还是您自己创建的?我不小心把这个评论给了 soadyp 而不是你。 我自己创造了这个【参考方案2】:http://msdn.microsoft.com/en-us/library/f1kyba5e
这其实和EF无关。
EF 只是一种读取数据的方式。
另请参阅表单身份验证 http://support.microsoft.com/kb/301240?wa=wsignin1.0
【讨论】:
你好,我也需要写数据,会改变吗? 不,您需要调查 Simpla 会员/自定义会员实施文档 您好,您的用户表是自动生成的代码还是您自己创建的?以上是关于代码优先会员提供者的主要内容,如果未能解决你的问题,请参考以下文章