在Azure AD B2C自定义策略中,在调用外部REST API时,如果REST API返回HTTP错误代码,如404未找到或401未授权,则"ContinueOnError“属性不会生效。相反,在自我断言的技术概要文件的情况下,用户旅程突然结束,向用户界面抛出错误“无法验证提供的信息”。但是,当REST API返回错误代码(如400Bad Request )时,ContinueOnError属性会按预期工作。
<ValidationTechnicalProfiles>
<ValidationTechnicalProfile ReferenceId="REST-API-PostUser" ContinueOnError="true" />
为什么上面的代码对某些代码不起作用,比如404或401?有没有其他方法可以让我们在用户之旅中相应地处理这些代码?
发布于 2019-11-21 21:56:54
带有B2C自定义策略的Rest API验证技术配置文件仅适用于200-ok、400- Bad请求或409 -Conflict HTTPStatus代码。我所做的是捕获REST API控制器中的任何错误,如果它是由您的团队编写的,并且总是抛出409,除了200和400。如果它不是由您的团队编写的,则有两种选择: 1.使用API管理器(许多在市场上都可以买到)将任何其他错误代码封装到409。2.在您正在调用的第三方API上开发自己的Web API作为包装器,然后捕获任何错误并将其作为409抛回。请阅读:https://docs.microsoft.com/bs-latn-ba/azure/active-directory-b2c/restful-technical-profile#returning-error-message
https://stackoverflow.com/questions/55722773
复制相似问题