Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-core/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net core 将标识移动到类库ASP.Net Core_Asp.net Core_Entity Framework Core_Asp.net Core Identity - Fatal编程技术网

Asp.net core 将标识移动到类库ASP.Net Core

Asp.net core 将标识移动到类库ASP.Net Core,asp.net-core,entity-framework-core,asp.net-core-identity,Asp.net Core,Entity Framework Core,Asp.net Core Identity,我开发了一个基于ASP.Net内核的新项目。 我已经将所有EF代码(模型、映射、DbContext)移到了一个专用的DAL类库中,以便遵循SOLID规则的单一责任原则 但是,我现在需要将身份验证添加到我的项目中,并且需要将以下内容添加到我的Web项目的Startup.cs中,如不同教程中所示: services.AddIdentity<ApplicationUser, IdentityRole>() .AddEntityFrameworkStores<Appli

我开发了一个基于ASP.Net内核的新项目。 我已经将所有EF代码(模型、映射、DbContext)移到了一个专用的DAL类库中,以便遵循SOLID规则的单一责任原则

但是,我现在需要将身份验证添加到我的项目中,并且需要将以下内容添加到我的Web项目的Startup.cs中,如不同教程中所示:

services.AddIdentity<ApplicationUser, IdentityRole>()
        .AddEntityFrameworkStores<ApplicationDbContext>()
        .AddDefaultTokenProviders();
services.AddIdentity()
.AddEntityFrameworkStores()
.AddDefaultTokenProviders();
这将涉及添加Microsoft.AspNetCore.Identity.EntityFrameworkCore包,在我看来,我开始打破SRP规则,将此包包括在我的Web项目中


是否可以像我为DAL做的那样,将所有标识码(服务、模型)作为外部类库移动。

由于标识码既有逻辑也有UI(登录/注销、注册等),所以它需要是一个web应用程序

海事组织有两种选择:

  • 将标识作为单独的web应用程序。由于Asp.Net核心标识支持OAuth2(OAuth2支持交互授权,如代码授权),用户在登录/注册过程中将被重定向到此web应用程序端点
  • 将identity Controller与您的合并,并将identity数据移动到DAL库中,请参见以下内容:

  • 如果SRP对您很重要,那么第一个选项是更好的选项。如果重定向到不同的URL对您来说似乎是一种糟糕的用户体验,那么第二个选项可能更好

    我正在对完全相同的问题进行自己的研究,发现了这条关于实现的线索,尽管它与.NET核心类库没有特别的关系。 我相信校长是相似的,你可以找到自己的出路。
    我还假设它不必像这里提到的那样通过web应用程序实现。

    是的,您可以将Microsoft.AspNetCore.Identity.EntityFrameworkCore安装到类库中。

    是的,您可以。将其移动到外部库中的扩展方法,并在合成根处调用它,这将是web项目。由于我正在尝试这样做,但尚未找到答案,请不要发布主要包含对外部站点引用的答案。这些网站可能会消失,你的反应也会随之消失。综合外部资源提供的原始海报。