微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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脚本或种子数据库)并将其用于创建或更新数据库.迁移需要一些学习,但再次非常值得为更复杂的事情付出努力.

希望这可以帮助

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐