You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用.NET Core获取Azure Active Directory B2C自定义用户属性

解决Azure AD B2C中C#获取自定义用户属性的问题

要获取自定义用户属性,核心是确保该属性已被配置到身份令牌中,再通过声明读取,步骤如下:

1. 先在Azure门户配置自定义属性的令牌返回

首先必须在你的AD B2C用户流(或自定义策略)里,把自定义属性设置为应用程序声明:

  • 进入Azure AD B2C的用户流页面,选择你正在使用的用户流
  • 切换到"应用程序声明"标签,找到你创建的自定义属性,勾选它并保存
  • 重新运行用户流,确保新生成的令牌包含该属性

2. 在C#代码中读取自定义属性

自定义属性在令牌中会以特定格式的声明类型存在,默认前缀为extension_加上你创建的属性名,完整声明类型类似http://schemas.microsoft.com/identity/claims/extension_<你的属性名>。修改你的代码如下:

[Authorize]
[HttpGet("authenticated/profile")]
public string GetCustomAttribute()
{
    // 替换成你实际的自定义属性声明类型
    var customClaimType = "http://schemas.microsoft.com/identity/claims/extension_FavoriteColor";
    var customAttribute = User.FindFirst(customClaimType)?.Value;

    return customAttribute ?? "未获取到自定义属性";
}

额外注意事项

  • 如果不确定声明类型的具体值,可以先打印出所有用户声明来排查:
    var allClaims = User.Claims.Select(c => $"{c.Type}: {c.Value}");
    
  • 如果需要获取更多未包含在令牌中的用户属性,可以使用Microsoft Graph API调用/users/{userId}端点,但需要额外配置Graph的权限。

内容的提问来源于stack exchange,提问作者lightbulb04

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.12 22:50:27