微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

asp.net-core – 将标识移动到类库ASP.Net Core

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

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

services.AddIdentity<ApplicationUser,IdentityRole>()
        .AddEntityFrameworkStores<ApplicationDbContext>()
        .AddDefaultTokenProviders();

它将涉及添加Microsoft.AspNetCore.Identity.EntityFrameworkCore包,在我看来,我开始通过将此包包含到我的Web项目中来打破SRP规则.

是否可以将所有身份代码(服务,模型)作为外部类库移动,就像我为DAL所做的那样.

解决方法

由于身份代码同时具有逻辑和UI(登录/注销,注册等),因此它需要是一个Web应用程序.

IMO有两种选择:

>将身份作为单独的Web应用程序.由于Asp.Net Core Identity支持OAuth2(OAuth2支持代码授权等交互式授权),因此用户将在登录/注册过程中重定向到此Web应用程序端点.
>将身份控制器与您的身份控制器相结合,并将身份数据移动到您的DAL库,请参阅:https://www.codeproject.com/Articles/1156558/ASP-NET-Core-Moving-IdentityDbContext-and-EF-model

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

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐