MicrosoftIdentityWebApi在启动时添加时不适用于Web应用程序



我之所以添加这个问题,是因为我花了一段时间才找到这个问题,并想在这里添加一个参考,供任何为同一问题而烦恼的人使用。

在连接Azure B2C时,我很难让后端能够读取来自Azure的令牌中的声明。我在jwt.io和示例应用程序的帮助下验证了该令牌是有效的,并且应该有声明,我将应用程序设置为读取该令牌,但每次我的应用程序尝试读取AuthorizationHandlerContent.User.Identity.Clamination中的声明时,它们总是空的。

进一步调查,很明显,在Startup.cs中,我设置的身份验证从未被击中。

以下线路被击中:

Services
.AddAuthentication(*some schema*)
.AddMicrosoftIdentityWebApi(options =>
{
//set some options
}, options =>
{
//set some options
})

但真正设置选项的代码从未被击中。

如果你遇到了类似的问题,请参阅下面的答案。

问题是,在我的启动基类中隐藏着上一个身份验证实现中的这一行:

services.AddIdentity<SomeUserClass, IdentityRole>();

一旦删除,我就能够以Azure B2C发送的格式接收索赔,并将其集成到我的应用程序中。

相关内容

最新更新