我正在关注this文章,并创建了一个效果非常好的样本。我可以使用它来注册,注销和编辑我的个人资料,但无法找到如何在AAD B2C中添加用户并为其分配一些角色,以便我可以根据角色区分它们,即当我到达时声明页面和获取用户对象,我可以通过写这样的东西来检查用户:
User.IsInRole("client")
我在“用户属性”中添加了一个名为“角色”的自定义属性,但这并没有解决我的问题。我只能在写作时看到:
foreach (Claim claim in ClaimsPrincipal.Current.Claims)
...claim.Type .... claim.Value
但我想按照上面的解释
提前致谢。
现在好了,我通过点击目录名称 - 用户找到了角色,但可用的角色是用户,全局管理员,计费管理员,服务管理员,用户管理员和密码管理员,但User.IsInRole(“用户”)不适合我。所以, 1.我可以添加任何自定义角色吗? 2.如何以编程方式检查我的用户是否属于某个特定角色? 感谢。
答案 0 :(得分:2)
您可以通过修改应用程序清单文件(在Azure Active Directory中配置的应用程序)来添加自定义角色。您只需下载清单json文件,添加自定义角色并再次上传文件。你可以在这里做到:
然后打开文件并添加以下自定义角色:
"appRoles": [
{
"allowedMemberTypes": [
"User"
],
"description": "some text",
"displayName": "Super role",
"id": "c530a40b-a47c-42b7-ba9a-f34d8ca7e443",
"isEnabled": true,
"origin": "Application",
"value": "Super role"
}
],
答案 1 :(得分:0)
Azure B2C中的用户属性以" Extension _"为前缀,因此用户属性"角色"将被称为" extension_role"在你的索赔中。 这就是UserIsInRole无法正常工作的原因
适用于Azure AD的东西,也许适用于B2C(我未尝试过): 尝试使用组(创建新组),将用户添加到组中。 默认情况下,群组成员资格不会添加到您的声明中: http://justazure.com/azure-active-directory-part-4-group-claims/