如何在同一个项目中同时拥有 身份端点 和 Razor 页面身份 UI?
我在
Program.cs
中尝试了这段代码,但应用程序因错误而崩溃。
builder.Services.AddDbContext<MyCustomDbContext>(options =>
options.UseNpgsql(connectionString));
builder.Services.AddDatabaseDeveloperPageExceptionFilter();
services.AddDefaultIdentity<MyCustomUser>(options =>
options.SignIn.RequireConfirmedAccount = true)
.AddRoles<MyCustomRole>()
.AddEntityFrameworkStores<MyCustomDbContext>();
// app runs successfully without below line
services.AddIdentityApiEndpoints<MyCustomUser>();
错误:
System.InvalidOperationException:方案已存在: 身份.申请 Microsoft.AspNetCore.Authentication.AuthenticationOptions.AddScheme(字符串 名称,操作
1.Configure(字符串 名称、TOptions 选项)位于 Microsoft.Extensions.Options.OptionsFactory1 configureBuilder) at Microsoft.Extensions.Options.ConfigureNamedOptions
1.get_Value()1.Create(String name) at Microsoft.Extensions.Options.UnnamedOptionsManager
可能某事发生两次但不知道如何预防!
很可能,我应该使用
AddIdentityApiEndpoints
,而不是 AddApiEndpoints
。
完整代码:
services.AddDefaultIdentity<RegUser>(options =>
options.SignIn.RequireConfirmedAccount = true)
.AddRoles<RegRole>()
.AddEntityFrameworkStores<RegDbContext>()
.AddApiEndpoints();
services.AddAuthentication()
.AddBearerToken(IdentityConstants.BearerScheme)
.AddIdentityCookies();