ASP Core Azure Active Directory登录使用角色

时间:2017-05-11 21:45:09

标签: asp.net azure asp.net-core azure-active-directory

我创建了一个Azure Active Directory应用程序,我想使用基于角色的安全性。我按照教程:https://azure.microsoft.com/en-us/resources/samples/active-directory-dotnet-webapp-openidconnect-aspnetcore/

登录有效,我在应用程序清单中添加了角色,并将角色Approver分配给了我自己的帐户。现在我想使用这些角色。

登录后,以下内容适用于控制器:

[Authorize]

但是在添加角色时,用户未获得授权:

[Authorize(Roles="Approver")]

以下内容返回false:

User.IsInRole("Approver");

似乎没有检索角色,有关如何将角色功能添加到此演示项目的任何建议?

2 个答案:

答案 0 :(得分:2)

此代码示例在将角色分配给帐户后适用于我。请在此行中调试应用程序:User.IsInRole(" Approver"); ,检查用户声明中是否存在{http://schemas.microsoft.com/ws/2008/06/identity/claims/role: Approver}。并确保添加允许会员类型为用户的角色,例如:

{
      "allowedMemberTypes": [
        "User"
      ],
      "displayName": "Approver",
      "id": "fc803414-3c61-4ebc-a5e5-cd1675c14bbb",
      "isEnabled": true,
      "description": "Approvers have the ability to change the status of tasks.",
      "value": "Approver"
    },

您已在Enterprise applications - > All applications - >中分配了用户角色找到你的应用 - > Users and groups - >添加/编辑用户并分配角色: enter image description here

答案 1 :(得分:1)

请查看以下代表:https://github.com/Azure-Samples/active-directory-dotnet-webapp-roleclaims

您需要在Azure门户中注册您的应用程序,然后转到清单设置以添加每个角色的角色和GUID。