ASP中的自定义用户数据.. NET MVC核心3.1与Azure AD认证?



我们正在迁移一个遗留的web应用程序,但希望保留存储在数据库中的特定于应用程序的用户信息。我们已经成功地针对新的Azure AD设置了身份验证—我们使用OIDC与多个租户。用户登录后,我们将通过他们的电子邮件地址从数据库中查找相关的用户记录。问题在于将现有的用户数据映射到ClaimPrincipal。文档声称我们可以扩展IdentityUser并通过:

注册更改
services.AddIdentity<AppUser, IdentityRole>(); //AppUser is our custom IdentityUser

现在,我们的Startup.cs文件包含:

services.AddIdentity<AppUser, IdentityRole>();    
services.AddAuthentication(OpenIdConnectDefaults.AuthenticationScheme)
.AddMicrosoftIdentityWebApp(Configuration.GetSection("AzureAd"));

然而,服务解析器对此并不满意。

一些服务无法被构造(验证时出错)服务描述符ServiceType:Microsoft.AspNetCore.Identity.ISecurityStampValidator生存期:限定ImplementationType:Microsoft.AspNetCore.Identity.SecurityStampValidator"1 (GcfConnect.Application.Web.Security.Models.AppUser)":无法解析服务的类型"Microsoft.AspNetCore.Identity.IUserStore"1 (GcfConnect.Application.Web.Security.Models.AppUser)"当试图激活…(剪辑)

我如何使用自定义IdentityUser与Azure AD身份验证?我是否需要为整个身份系统(UserStoreUserManager等)提供自定义替换?

如果您正在使用EF,请尝试将其更改为操作。

需要添加AddEntityFrameworkStores():

services.AddIdentity<IdentityUser, IdentityRole>()
.AddEntityFrameworkStores<WorldContext>();

相关内容

  • 没有找到相关文章

最新更新