我之所以添加这个问题,是因为我挣扎了一段时间才找到这个问题,并想在这里为任何因同一问题而烦恼的人添加参考。
在连接 Azure B2C 时,我试图让后端能够读取来自 Azure 的令牌中的声明。我验证了令牌是有效的,并且应该在 jwt.io 和示例应用程序的帮助下进行声明,并且我设置了我的应用程序以读取令牌,但是每次我的应用程序尝试读取 AuthorizationHandlerContext.User.Identity.Claims 中的声明时,它们总是空的。
进一步调查后,很明显在 Startup.cs 中我设置的身份验证从未被命中。
以下行被击中:
Services
.AddAuthentication(*some schema*)
.AddMicrosoftIdentityWebApi(options =>
{
//set some options
}, options =>
{
//set some options
})
但实际设置选项的代码从未被击中。
如果您遇到类似的问题,请参阅下面的我的回答。