0

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

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

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

以下行被击中:

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

但实际设置选项的代码从未被击中。

如果您遇到类似的问题,请参阅下面的我的回答。

4

1 回答 1

0

问题在于,埋藏在我的启动基类中的是先前身份验证实现中的这一行:

services.AddIdentity<SomeUserClass, IdentityRole>();

删除后,我就能够以 Azure B2C 发送的格式接收声明并集成到我的应用程序中。

于 2021-07-08T16:26:18.863 回答