AddEntityFrameworkStores 在 AddIdentity 中究竟做了什么?
What does AddEntityFrameworkStores exactly do in AddIdentity?
我最近需要为我的 .net core 5 应用程序生成电子邮件确认令牌,在研究过程中我发现我需要在启动时注册“AddIdentity
”。
services.AddIdentity<AuthenticatedUser, IdentityRole>(options =>
{
options.User.RequireUniqueEmail = false;
}).
AddEntityFrameworkStores<SchoolDataContext>().
AddDefaultTokenProviders();
如果我删除“AddEntityFrameworkStores
”部分,则应用程序会构建并启动,但会在运行时崩溃并出现类似 following:
中的错误
错误:
System.AggregateException: 'Some services are not able to be constructed (Error while validating the service descriptor 'ServiceType: Microsoft.AspNetCore.Identity.IUserClaimsPrincipalFactory1[WebApp1.Areas.Identity.Data.ApplicationUser] Lifetime: Scoped ImplementationType: WebApp1.Areas.Identity.Data.AdditionalUserClaimsPrincipalFactory': Unable to resolve service for type 'Microsoft.AspNetCore.Identity.UserManager1[WebApp1.Areas.Identity.Data.ApplicationUser]' while attempting to activate 'WebApp1.Areas.Identity.Data.AdditionalUserClaimsPrincipalFactory'.)'
我的问题是为什么我们甚至需要注册“AddEntityFrameworkStores
”,我找不到它的良好文档或源代码实现。难道我们不能避免使用它,或者知道为什么我们首先需要它吗?
基本上它添加了默认商店:UserStore 和 RoleStore。如果您不使用它,则必须自己为 Stores 提供 AddUserStore 和 AddRoleStore。
我最近需要为我的 .net core 5 应用程序生成电子邮件确认令牌,在研究过程中我发现我需要在启动时注册“AddIdentity
”。
services.AddIdentity<AuthenticatedUser, IdentityRole>(options =>
{
options.User.RequireUniqueEmail = false;
}).
AddEntityFrameworkStores<SchoolDataContext>().
AddDefaultTokenProviders();
如果我删除“AddEntityFrameworkStores
”部分,则应用程序会构建并启动,但会在运行时崩溃并出现类似 following:
错误:
System.AggregateException: 'Some services are not able to be constructed (Error while validating the service descriptor 'ServiceType: Microsoft.AspNetCore.Identity.IUserClaimsPrincipalFactory1[WebApp1.Areas.Identity.Data.ApplicationUser] Lifetime: Scoped ImplementationType: WebApp1.Areas.Identity.Data.AdditionalUserClaimsPrincipalFactory': Unable to resolve service for type 'Microsoft.AspNetCore.Identity.UserManager1[WebApp1.Areas.Identity.Data.ApplicationUser]' while attempting to activate 'WebApp1.Areas.Identity.Data.AdditionalUserClaimsPrincipalFactory'.)'
我的问题是为什么我们甚至需要注册“AddEntityFrameworkStores
”,我找不到它的良好文档或源代码实现。难道我们不能避免使用它,或者知道为什么我们首先需要它吗?
基本上它添加了默认商店:UserStore 和 RoleStore。如果您不使用它,则必须自己为 Stores 提供 AddUserStore 和 AddRoleStore。