我创建了一个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");
似乎没有检索角色,有关如何将角色功能添加到此演示项目的任何建议?
答案 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
- >添加/编辑用户并分配角色:
答案 1 :(得分:1)
请查看以下代表:https://github.com/Azure-Samples/active-directory-dotnet-webapp-roleclaims
您需要在Azure门户中注册您的应用程序,然后转到清单设置以添加每个角色的角色和GUID。