首页 > 解决方案 > 如何在 azure 活动目录中获取用户角色?asp.net core 5.0 blazor

问题描述

我想在登录后获取用户角色。我正在获取用户信息,但角色为空。请在下面查看我的代码:

services.AddHttpContextAccessor();在 startup.cs 中的 ConfigureServices 方法中初始化

 [Inject] public IHttpContextAccessor HttpContextAccessor { get; set; }
 public string GetCurrentUser()
        {
            var roles = HttpContextAccessor.HttpContext.User.Claims.Where(c => c.Type == ClaimTypes.Role).Select(c => c.Value).ToList(); // Please see the below image 
            return HttpContextAccessor.HttpContext.User.Identity.Name;   // getting login user, no issue here          
        }

用户分配了 3 个角色,但这里没有获得任何角色。如何获得角色?谢谢

在此处输入图像描述

Appsettings.json 文件配置。

在此处输入图像描述

标签: azure-active-directoryblazor-server-sideasp.net-core-5.0

解决方案


我遇到了类似的问题,让 ClaimsPrincipal 为空,所以我找到了一个关于 2FA 的解决方案,当您启用 2FA 并在下次登录时,如果您检查了记住此浏览器的 2fa 并从您的帐户中删除 2fa,它会在某些页面中注销并失去索赔。尝试清除 cookie。 https://github.com/dotnet/aspnetcore/issues/5817#issuecomment-491818987


推荐阅读