gpt4 book ai didi

asp.net-core - 提取身份以在 ASP.NET Core MVC 中分离项目

转载 作者:行者123 更新时间:2023-12-05 01:33:11 24 4
gpt4 key购买 nike

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

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

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

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

  • 服务
  • 迁移
  • 应用数据库上下文

以及引用:

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

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

最佳答案

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

因此,UI 引用业务/服务层并调用业务/服务层中 IServiceCollection 的扩展方法,这些方法又可以调用 Db/存储层中的扩展方法。

与示例类似的问题 here

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

关于asp.net-core - 提取身份以在 ASP.NET Core MVC 中分离项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39165802/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com