【问题标题】:How to get the [Authorize(Roles = "RoleName")] into variable?如何将 [Authorize(Roles = "RoleName")] 转换为变量?
【发布时间】:2021-03-24 22:04:32
【问题描述】:

我正在尝试将 AuthorizeAttribute 中的角色保存在一个变量中,但我似乎无法弄清楚如何。我想要这样的东西。注意:用户/角色是从 Azure Active Directory 创建的

private string CalculateRole()
{
   var role = authorize.role; 
   return role;
}

我到处搜索,我得到的“最接近”的是这个问题asp.net identity get all roles of logged in user

但我得到的只是我找不到任何“角色”的声明列表。

【问题讨论】:

  • “角色”只是特定类型声明的语法糖。您在问题中链接的答案是正确的。
  • 谢谢你,我想通了,不明白其中的角色要求-_-但是谢谢!

标签: asp.net-core oauth-2.0 azure-active-directory authorize-attribute


【解决方案1】:

[Authorize(Roles = "RoleName")] 用于访问。我们可以使用 Authorize 属性的 Roles 属性指定有权访问所请求资源的角色。例如,[Authorize(Roles = "Admin")] 允许我们将 action 方法访问给“Admin”角色成员的用户。

对于应用程序的当前登录用户,您始终可以从作为 Azure Active Directory 访问令牌的一部分的 Role claims 中找到分配给他们的 Application Roles

有关详细信息,这里有一个 sample,它使用 OpenID Connect 登录用户并使用 Azure AD 应用程序角色(应用程序角色)进行授权。另外,您可以使用Microsoft Graph API 来获取角色。

【讨论】:

    【解决方案2】:

    您可以通过当前用户ID从数据库中获取角色。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-10-08
      • 2023-02-02
      • 2010-12-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-11
      相关资源
      最近更新 更多