asp.net-mvc-3 - MVC3 : EF Code First and authentication

标签 asp.net-mvc-3 entity-framework authentication code-first

我正在 SQLExpress DB 上构建一个 MVC3 EF Code First 应用程序。每当架构发生变化或类似的事情时,数据库都会自动生成,这对我来说非常重要。现在我正在向我的应用程序添加身份验证,并且我查看了 MVC 附带的身份验证框架。但是,看起来每次生成新数据库时都需要我运行 aspnet_regsql.exe。我真的需要身份验证表与我的应用程序数据库位于同一个数据库中。

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

  • 是否可以使用身份验证框架并以与 Entity Framework 生成我的其他数据相同的方式自动生成它?
  • 如果不是,我可以编写自己的身份验证,但是还有可以使用的部分吗?换句话说,我是否需要编写自定义成员资格提供程序或类似的东西?我想继续使用属性 [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 而不是更改数据库 - 然后将其组合(与 aspnet 脚本或种子数据库)并使用它来创建或更新数据库。迁移需要一些学习,但对于更复杂的事情来说,同样值得付出努力。

    希望这可以帮助

    关于asp.net-mvc-3 - MVC3 : EF Code First and authentication,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10362607/

    相关文章:

    jquery - MVC3 文本字段不可复制/粘贴或 ctrl+C/ctrl+V

    asp.net-mvc - 在带有 Razor 的 ASP.NET MVC RC3 中 - @String.Format ("{0:hh:mm:ss}", timespan) 错误 - 错误?

    c# - Entity Framework : Mapping a db real to decimal? 无法将 System.Single 转换为 System.Double

    c# - Entity Framework ,更新相关对象时出现问题

    c# - 多次指定固定名称 System.Data.SqlClient 的提供程序

    javascript - 我应该如何将用户的登录状态传递到我的 Ember.js 应用程序?

    c# - StructureMap Setter 注入(inject)未设置属性

    authentication - OpenLDAP 中的嵌套 posixgroup

    javascript - 为什么 http-auth 不能与 express.static 中间件一起使用?

    asp.net-mvc - 如何让 ASP.NET MVC Action 返回不同的格式?