微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

如何解决在启动时添加 MicrosoftIdentityWebApi 不适用于 Web 应用程序

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

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

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

正在命中以下行:

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

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

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

解决方法

问题在于我的启动基类中隐藏着来自先前身份验证实现的这一行:

services.AddIdentity<SomeUserClass,IdentityRole>();

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

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。