问题描述
我有一个Angular应用程序和一个用.NET Core构建的单独的Web API解决方案。我已成功使用Azure AD B2C设置身份验证。我能够登录到角度应用程序。但是,我想保护我的Web API调用之一。即http:// localhost / Profile / GetProfile。麻烦的是,即使没有登录,我也能够成功查询该URL。
我在github中使用了sample application中的代码,但奇怪的是,当尝试从ClientApp进行api调用时,我未获得401的授权。但是,我可以在新标签页中(我的应用程序外部)成功打开该网址。我正试图达到相反的目的。也就是说,它应该在浏览器中显示401,但在我的ClientApp中显示200。我在做什么错了?
顺便说一句,当尝试导航到todo菜单项时,示例应用程序将引发未处理的异常。
解决方法
麻烦的是,即使在以下情况下,我也可以成功查询此网址 尚未登录。
这是因为成功登录后缓存仍然存在。使用浏览器隐私模式后,您将需要重新登录。
这些屏幕截图是否位于您想要实现的屏幕下方?您可以在this中解码令牌。请求的令牌是否成功与api端点不匹配。如果是,请检查您的客户端应用(API权限)和服务器应用(暴露API)。
我的ClientApp中