【问题标题】:Extract Identity to separate project in ASP.NET Core MVC将标识提取到 ASP.NET Core MVC 中的单独项目
【发布时间】:2017-01-03 02:19:58
【问题描述】:

我正在设置一个新的 ASP.NET Core 项目,在我的 MVC 项目中,我希望使用 Identity 进行用户注册/登录等。

我可以自己编写,但我真的很想在我的控制器和操作中使用授权属性。

但是,我想将 Identity 部分提取到一个单独的项目中,这样我的 MVC 项目就不会直接依赖于 Entity/DBContexts。

当使用 Identity 创建一个新的 MVC 项目时,它会创建:

  • 服务
  • 迁移
  • ApplicationDBContext

以及参考:

  • Microsoft.AspNetCore.Identity.EntityFrameworkCore
  • Microsoft.EntityFramework.*

我有什么简单的方法可以将所有身份代码提取到一个单独的项目中,我的控制器只使用该项目中的服务(注入到控制器的构造函数中)?

【问题讨论】:

  • 我已经在我的项目中实现了多租户身份github.com/joeaudette/cloudscribe
  • 这很酷。我会尝试类似的东西。刚刚又看了一遍,解压到单独的项目中似乎“简单”。谢天谢地,我不必担心多租户。

标签: asp.net-core asp.net-core-mvc


【解决方案1】:

保持项目引用在层之间分离以使 UI/MVC 层不直接引用 Db/Storage 层的方法是在项目的其他层中对 IServiceCollection 进行扩展方法。

所以 UI 引用业务/服务层并调用业务/服务层中的 IServiceCollection 的扩展方法,这些方法又可以调用数据库/存储层中的扩展方法。

与示例类似的问题here

但是,当您将 EF 代码移动到单独的类库中时,会出现一些已知问题,即运行 EF 命令来生成迁移不起作用。您可以通过使类库成为具有自己的 Startup 类的应用程序/控制台应用程序来解决此问题。我的理解是这将在以后修复。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2022-01-06
    • 1970-01-01
    • 2016-05-29
    • 1970-01-01
    • 2016-11-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多