在 ASP.NET MVC 中,将身份验证模型移至 Class 库

In ASP.NET MVC, move Authentication Models to a Class Library

我正在 ASP.NET MVC 5 中使用 Entity Framework 6 Code First 开发一个新项目。

当前状态

我在一个解决方案中有两个项目。一个是前端 (MVC),另一个是 Class 库,我希望它能容纳我所有的模型 classes(不是 ViewModels)。

众所周知,当您开始一个新的 MVC 项目时,标识模型位于 [Models] 文件夹中。由于这些在逻辑上属于我的 Class 图书馆项目,我想将它们移到那里。

我尝试了什么

在 [Authentication] 文件夹中,我已经创建了一个 ApplicationUser.cs class。现在只要看看 IdentityModels.cs 我就知道我需要参考 Microsoft.AspNet.Identity 等等。

因此,我右键单击 BB.DOMAIN 项目的引用,然后单击{添加引用}。但是我在任何地方都看不到 Microsoft.AspNet.Identity 库!

需要澄清

我在这里做的对吗?我目前的想法是,我正在做一些通常不应该做的事情!但是无论你在哪里阅读,你都会被告知所有核心实体通常应该放在一个地方。

另一件我已经感到困惑但还没有做到的事情是:

public class ApplicationDbContext : IdentityDbContext<ApplicationUser>
{
    public ApplicationDbContext() : base("DefaultConnection", throwIfV1Schema: false)
    {
    }

    public static ApplicationDbContext Create()
    {
        return new ApplicationDbContext();
    }
}

当我将 ApplicationDbContext.cs 添加到 BB.DOMAIN 中的 [Authentication] 文件夹时。为了使所有内容都位于同一个数据库中,我是否只需将 base("DefaultConnection") 更改为位于 [Context] 文件夹内的其他 DbContext class 中连接字符串的名称?

我希望驱动此应用程序的所有实体都位于一个数据库中。

IdentityModel 文件中使用的超级 class IdentityUser 来自 Microsoft ASP.NET Identity EntityFramework 包,不是 .Net Framework 4.5 的一部分。

您需要将此 nuget 包和依赖项添加到项目中 BB.DOMAIN