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

如何使用MS Graph SDK v4.7获取ADB2C用户2FA绑定手机号?

获取ADB2C用户2FA手机号的解决方案

你的问题核心是MS Graph SDK v4.7版本太旧,还没有封装Authentication.PhoneMethods这个属性——这个属性对应Graph API中专门用于获取电话认证方法的端点,而v4.7的SDK仅支持更通用的Authentication.Methods,但后者在旧版API逻辑里不会返回手机号的详细信息。

给你两个可行的解决办法:

1. 升级MS Graph SDK到最新版本

直接把SDK升级到当前最新版,就能直接使用文档里的graphClient.Users[id].Authentication.PhoneMethods.Request().GetAsync()调用方式,这是最省心的方案。升级后SDK会自动适配对应的Graph API端点,返回结果里会直接包含2FA用的手机号。

2. 不升级SDK,用自定义请求调用API

如果因为依赖限制无法升级,可以用SDK的自定义请求功能直接调用Graph API的端点:

var requestUrl = graphClient.Users[id].Authentication.AppendSegmentToRequestUrl("phoneMethods");
var response = await graphClient.HttpProvider.SendAsync(new HttpRequestMessage(HttpMethod.Get, requestUrl));
var phoneMethods = await response.Content.ReadAsAsync<List<PhoneAuthenticationMethod>>();
// 从phoneMethods里提取手机号,比如phoneMethods.FirstOrDefault()?.PhoneNumber

注意要先确保你的应用已经申请了UserAuthenticationMethod.Read.All(全局读取)或者UserAuthenticationMethod.Read(读取单个用户)的权限,否则会返回权限不足的错误。

另外补充一点:之前Authentication.Methods没返回手机号,大概率是旧版API里这个端点不包含电话方法的详细数据,不是你漏了配置,而是版本限制导致的。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.07 06:22:38