【问题标题】:How to get user information in ASP.NET Core 3.1 from Azure AD B2C user store?如何从 Azure AD B2C 用户存储中获取 ASP.NET Core 3.1 中的用户信息?
【发布时间】:2021-04-27 13:01:08
【问题描述】:

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

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

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

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

【问题讨论】:

    标签: c# asp.net-core azure-ad-b2c


    【解决方案1】:

    您可以使用依赖注入在您的类中注入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;
            } 
        }
    }
    

    而且,您可以使用FindByNameAsyncFindByIdAsync 来获取用户。

    您可以在 .NET Core 3.1 Identity 上关注 this excellent material

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-10-19
      • 2017-10-07
      • 2023-01-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-11-20
      相关资源
      最近更新 更多