具有身份和 EF 的 3 层应用程序

Posted

技术标签:

【中文标题】具有身份和 EF 的 3 层应用程序【英文标题】:3 tier application with Identity and EF 【发布时间】:2015-06-09 02:11:04 【问题描述】:

我正在开发一个从头开始进行身份验证的 3 层项目。我使用以下内容作为实施身份验证的指南:http://bitoftech.net/2015/01/21/asp-net-identity-2-with-asp-net-web-api-2-accounts-management/

问题是我需要安装以下 NuGet 包:

Install-Package Microsoft.AspNet.Identity.Owin -Version 2.1.0
Install-Package Microsoft.AspNet.Identity.EntityFramework -Version 2.1.0
Install-Package Microsoft.Owin.Host.SystemWeb -Version 3.0.0
Install-Package Microsoft.AspNet.WebApi.Owin -Version 5.2.2
Install-Package Microsoft.Owin.Security.OAuth -Version 3.0.0
Install-Package Microsoft.Owin.Cors -Version 3.0.0

我直观地将 Microsoft.AspNet.Identity.Owin 安装到了我的表示层中,现在的困境是,Microsoft.AspNet.Identity.EntityFramework 它去了哪里?我已经将 EF6 安装到数据访问层中,有没有办法在表示层中向 Microsoft.AspNet.Identity.EntityFramework 提供这种依赖关系?

【问题讨论】:

【参考方案1】:

它应该进入你的网络项目。

Microsoft.AspNet.Identity.EntityFramework 是一个namespace,它提供了可以轻松地将身份项目连接到实体框架的类。它实际上并没有为 EF 本身提供任何东西。

如果您选择使用不同的 ORM,或者如果您想完全自定义 asp.net 身份(例如,make your own UserStore),您甚至不会在您的项目中包含该包。

【讨论】:

【参考方案2】:

Owin 本身与演示无关。它是“身份验证中间件”。您可能希望将所有这些包安装到您的“逻辑层”项目中,即 WebAPI。

我建议您阅读previous version of the aforementioned guide 的前两部分。

【讨论】:

以上是关于具有身份和 EF 的 3 层应用程序的主要内容,如果未能解决你的问题,请参考以下文章

具有最佳实践的示例 N 层 ASP.NET MVC3 应用程序(使用 EF 4.1)

是否可以在具有 WebAPI 服务的 3 层体系结构的 SQL Server 数据库中使用 Windows 身份验证?

使用 Azure 服务的具有身份验证、授权和持久层的 Xamarin 应用程序

我们如何使用 EF 在 ASP.Net MVC 应用程序中创建 3 层架构?

具有 ASP.NET Core 3.0 和 EF Core 的多租户应用程序

ASP.NET MVC 的三层架构 + EF数据模型