首页 > 解决方案 > 在 ASP.NET Core 中,是否可以在授权中使用枚举作为策略 RequireRole?

问题描述

在 ASP.NET Core Authorization 我想使用这个枚举:

public enum MemberRules
{
    Admin= 0,
    User = 1
}

在政策上,但我在类型转换或类似问题上遇到了问题:

services.AddAuthorization(options =>
    {
      options.AddPolicy(MemberRules.Admin, policy => policy.RequireRole(MemberRules.Admin));
      options.AddPolicy(MemberRules.User , policy => policy.RequireRole(MemberRules.User ));
    });

如何投射我的枚举以将其用作 RequireRole?

标签: authenticationasp.net-coreauthorization

解决方案


使用如下枚举:

 services.AddAuthorization(options =>
 {
       options.AddPolicy("Admin", policy => policy.RequireRole(MemberRules.Admin.ToString()));
       options.AddPolicy("User", policy => policy.RequireRole(MemberRules.User.ToString()));
 });

然后[Authorize]在动作或控制器上使用

 [Authorize(Policy ="Admin")]
 public IActionResult GetData()

推荐阅读