首页 > 解决方案 > 如何从 Azure AD B2C 用户存储中获取 ASP.NET Core 3.1 中的用户信息?

问题描述

ASP.NET Core 3.1 应用是使用 Visual Studio 新项目向导创建的。大多数使用默认选项,但身份验证配置为使用存储在 Azure AD B2C 中的单个用户帐户。

Web 应用程序由 Visual Studio 搭建、编译和运行良好。登录时,当前用户名会打印在标题中,使用@User.Identity.Name.

在摆弄之后@User.Identity.Name,不清楚如何访问存储在 AAD B2C 中的其余用户信息或“声明”。

在 MVC 控制器中访问存储在 AAD B2C 中的用户信息的正确/建议方法是什么?

标签: c#asp.net-coreazure-ad-b2c

解决方案


您可以UserManager使用依赖注入注入您的类。下面给出一个例子:

using ContactManager.Data;
using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Identity;
using Microsoft.AspNetCore.Mvc.RazorPages;

namespace ContactManager.Pages.Contacts
{
    public class DI_BasePageModel : PageModel
    {
        protected ApplicationDbContext Context { get; }
        protected IAuthorizationService AuthorizationService { get; }
        protected UserManager<IdentityUser> UserManager { get; }

        public DI_BasePageModel(
            ApplicationDbContext context,
            IAuthorizationService authorizationService,
            UserManager<IdentityUser> userManager) : base()
        {
            Context = context;
            UserManager = userManager;
            AuthorizationService = authorizationService;
        } 
    }
}

并且,您可以使用FindByNameAsyncorFindByIdAsync来获取用户。

您可以在 .NET Core 3.1 Identity 上关注这个优秀的材料


推荐阅读