1

我的项目在 VS-2022 中并使用下面的标签。

有人可以解释一下下面的代码片段参考在 SERVER program.cs 文件中的含义吗?这个片段打算“做什么”?
具体来说,“名称”和“角色”指的是什么?我已经在 AspNetRoles 表以及 AspNetRoleClaims 和 AspNetUserClaims 中创建了四个角色。但是,以下 Blazor 页面条件不起作用:@attribute [Authorize(Roles = "Owner,Admin,Lead,User")]

我在需要此代码来获得角色授权工作的建议中找到了以下代码段。

使用时,我在包含以下内容的行上收到运行时错误“序列不包含元素”:options.ApiResources.Single().UserClaims.Add("name");

由于阅读了 .NET Core 3.1 和 .NET 5 在线教程以将我的项目纳入 .NET 6 和 WASM 托管,因此我不知道 program.cs 文件部分(以前称为 startup.cs)中需要什么。过去两年发生了很大变化,尤其是 Blazor 和 .NET 6。

我欢迎在我的项目中获得角色授权的问题、评论和解决方案。

builder.Services.AddIdentityServer()
        .AddApiAuthorization<ApplicationUser, ApplicationDbContext>(options => {
           options.IdentityResources["openid"].UserClaims.Add("name");
           options.ApiResources.Single().UserClaims.Add("name");
           options.IdentityResources["openid"].UserClaims.Add("role");
           options.ApiResources.Single().UserClaims.Add("role");
        });

JwtSecurityTokenHandler.DefaultInboundClaimTypeMap.Remove("role");
4

0 回答 0