asp.net-mvc-3 – MVC3:EF Code First和身份验证

我正在sqlExpress DB上构建MVC3 EF Code First应用程序.对我来说非常重要的是,只要架构发生变化或类似的情况,就会自动生成数据库.现在我正在为我的应用程序添加身份验证,并查看了MVC附带的身份验证框架.但是,因为它似乎需要我每次生成数据库时运行aspnet_regsql.exe.我真的需要Authentication表与我的应用程序数据库在同一个数据库中.

我基本上想知道我的选择是什么;

>是否可以使用身份验证框架并以与Entity框架生成其他数据相同的方式自动生成它?
>如果没有,我可以编写自己的身份验证,但是还有部分我可以使用吗?换句话说,我是否需要编写自定义成员资格提供程序或类似的东西?我想继续使用属性[authenticate]等.

我可以在正确的方向上使用一些指针.

解决方法

您可以从 CodeFirst Membership Provider
开始 – 这是一个基于代码优先的自定义提供程序 – 如果需要可以扩展(也可以通过网站上的推荐用法阅读).

以上是IMO的最佳方式,因为您可以真正地集成两者(例如,如果您可能需要直接访问例如会员表,与您自己的用户/客户端表等相关).

但你也有其他选择……

a)编写自己的Db初始化程序并对数据库进行种子处理(就像这里建议的那样https://stackoverflow.com/a/5462981/417747.注意:您可以使用不同的方法,从运行aspnet表sql脚本到创建aspnet表的模型等)或者

b)使用“保留”数据库的Db初始化程序 – 并首先使用aspnet表准备数据库

c)(最后但并非最不重要)使用迁移(正如@Chris正确建议的那样).迁移非常强大.您可以运行Update-Database -Script来生成sql而不是更改Db – 然后将其组合(使用aspnet脚本或种子数据库)并将其用于创建或更新数据库.迁移需要一些学习,但再次非常值得为更复杂的事情付出努力.

希望这可以帮助

相关文章

### 创建一个gRPC服务项目(grpc服务端)和一个 webapi项目(...
一、SiganlR 使用的协议类型 1.websocket即时通讯协议 2.Ser...
.Net 6 WebApi 项目 在Linux系统上 打包成Docker镜像,发布为...
一、 PD简介PowerDesigner 是一个集所有现代建模技术于一身的...
一、存储过程 存储过程就像数据库中运行的方法(函数) 优点:...
一、Ueditor的下载 1、百度编辑器下载地址:http://ueditor....