C# 如何在ASP.NET Core中创建可编辑角色?

C# 如何在ASP.NET Core中创建可编辑角色?,c#,asp.net,asp.net-core,C#,Asp.net,Asp.net Core,我想使用ASP.NET Core进行基于角色的授权,但角色需要可编辑。我的想法是扮演这样的角色: 名字 卡内特 烛台 等等 并且用户将分配角色 默认角色不是选项,因为我需要编辑这些角色。 我正在考虑一些奇怪的使用策略的方法或者写我自己的授权 [Authorize(Roles = "Administrator")] // Not editable 我必须告诉你,我没有使用Identity,对于身份验证,我有JWT 我可能很难做出要求的宣传。 你觉得呢?有什么想法吗?好的,那么 我把它保存

我想使用ASP.NET Core进行基于角色的授权,但角色需要可编辑。我的想法是扮演这样的角色:

  • 名字
  • 卡内特
  • 烛台
  • 等等
并且用户将分配角色

默认角色不是选项,因为我需要编辑这些角色。 我正在考虑一些奇怪的使用策略的方法或者写我自己的授权

[Authorize(Roles = "Administrator")] // Not editable
我必须告诉你,我没有使用
Identity
,对于身份验证,我有JWT



我可能很难做出
要求的宣传
。 你觉得呢?有什么想法吗?

好的,那么

我把它保存在JWT中,然后添加这样的策略

  ...
  services.AddAuthorization(options => {
     options.AddPolicy("CanEditUnit", policy => policy.RequireClaim("CanEditUnit", "True"));
  });
  ...
并使用
授权
属性。例如:

[Authorize(Policy = "CanEditUnit")

谢谢大家的帮助!特别是@Briefkasten.

你有什么问题?是否要基于声明的授权?是否尝试System.Security.Claims?您可以使用ICLAIMS转换将“基于角色的系统”转换为声明。我想声明很难维护。如果我理解这一点,每个用户都有自己的主张@卡斯滕提出了一个好主意。我要试试看!所以我是否需要将转换后的声明存储在JWT中?@Morasiu不需要。您可以将转换后的声明保存回“基于角色的系统”。这样您就可以加载和保存索赔。
  ...
  services.AddAuthorization(options => {
     options.AddPolicy("CanEditUnit", policy => policy.RequireClaim("CanEditUnit", "True"));
  });
  ...
[Authorize(Policy = "CanEditUnit")