0

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

  • 姓名
  • 可编辑
  • 可以删除
  • 等等

并且用户将分配角色。

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

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

我必须告诉我,我没有使用IdentityJWT 进行身份验证。


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

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

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

我很难做到RequirePrivilege。各位开发者怎么看?有任何想法吗?

4

1 回答 1

0

好吧,那么...

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

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

他们使用Authorize属性。例如:

[Authorize(Policy = "CanEditUnit")

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

于 2018-07-10T12:19:43.350 回答