如何在ASP.NET Core中设置可编辑的角色?

时间:2018-07-05 10:14:02

标签: c# asp.net asp.net-core

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

  • 名称
  • canEdit
  • canDelete

用户将分配角色。

默认角色不是一个选项,因为我需要编辑这些角色。 我正在考虑使用政策或使用我自己的授权进行一些奇怪的操作。

[Authorize(Roles = "Administrator")] // Not editable

我必须告诉我,我没有使用Identity,为了进行身份验证,我使用了JWT。


...
[Authorize(Policy = "CanEdit")]
SomeEditMethod()
...

public void ConfigureServices(IServiceCollection services)
{
    services.AddMvc();

    services.AddAuthorization(options =>
    {
        options.AddPolicy("CanEdit", policy => policy.RequirePrivilege("CanEdit"));
    });
}

我很难成为RequirePrivilege。 您如何看待开发人员?有什么想法吗?

1 个答案:

答案 0 :(得分:0)

好的,所以...

我通过将其保存在JWT中,然后添加了这样的策略来做到这一点。

  ...
  services.AddAuthorization(options => {
     options.AddPolicy("CanEditUnit", policy => policy.RequireClaim("CanEditUnit", "True"));
  });
  ...

然后使用Authorize属性。例如:

[Authorize(Policy = "CanEditUnit")

感谢大家的帮助!尤其是@Briefkasten。