一起使用 IdentityApiEndpoints 和 Razor 页面 DefaultIdentity UI

问题描述 投票:0回答:1

如何在同一个项目中同时拥有 身份端点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 configureBuilder)    at Microsoft.Extensions.Options.ConfigureNamedOptions
1.Configure(字符串 名称、TOptions 选项)位于 Microsoft.Extensions.Options.OptionsFactory
1.Create(String name)    at Microsoft.Extensions.Options.UnnamedOptionsManager
1.get_Value()

可能某事发生两次但不知道如何预防!

asp.net asp.net-core asp.net-identity
1个回答
0
投票

很可能,我应该使用

AddIdentityApiEndpoints
,而不是
AddApiEndpoints

完整代码:

services.AddDefaultIdentity<RegUser>(options =>
        options.SignIn.RequireConfirmedAccount = true)
    .AddRoles<RegRole>()
    .AddEntityFrameworkStores<RegDbContext>()
    .AddApiEndpoints();

services.AddAuthentication()
    .AddBearerToken(IdentityConstants.BearerScheme)
    .AddIdentityCookies();
© www.soinside.com 2019 - 2024. All rights reserved.