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

3 tier application with Identity and EF

我正在从头开发一个带身份验证的 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 提供此依赖项?

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

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

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

Owin 本身与演示无关。是"authentication middleware"。您可能希望将所有这些包安装到您的 "logic tier" 项目中,即 WebAPI。

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