调用Logic App URL时遇多认证方案冲突错误,如何解决?
问题解决方法
这个错误的核心原因是你的请求同时使用了两种认证方案——要么是请求URL里带了SAS令牌参数,同时又在请求头里加了Bearer令牌;要么是Logic App的端点本身默认关联了某种内部认证,你又额外加了另一种。
解决步骤:
先检查请求的URL:如果URL里带有类似
?sig=、&token=这类SAS相关的参数,你需要二选一:- 删掉URL中的SAS参数,只保留Bearer令牌认证(维持你原来的代码逻辑,但要确保URL干净)
- 删掉请求头里的Bearer认证代码,直接使用带SAS参数的URL发起请求
确认Logic App的端点配置:不同的Logic App HTTP端点可能只支持单一认证方式,比如如果你的触发器是用SAS配置的,就不能混用Bearer;如果是用Azure AD的Bearer令牌认证,就必须移除URL里的SAS参数。
修正后的代码示例
仅使用Bearer令牌认证(URL无SAS)
var httpClient = new HttpClient(); var targetUrl = "https://your-logic-app-step-result-url"; // 确保URL不含SAS参数 httpClient.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", "Your-Valid-Bearer-Token"); var response = await httpClient.GetAsync(targetUrl);
仅使用SAS令牌认证(URL带SAS,无Bearer头)
var httpClient = new HttpClient(); // URL包含完整的SAS验证参数 var targetUrl = "https://your-logic-app-step-result-url?sig=your-sas-token-content"; var response = await httpClient.GetAsync(targetUrl);
Postman中的解决方法
打开你的请求,同时检查:
- Params标签页:有没有SAS相关的参数,有的话删掉
- Headers标签页:有没有
Authorization: Bearer xxx的头,有的话删掉
只保留其中一种认证方式即可。
内容的提问来源于stack exchange,提问作者Paul
相关产品推荐
相关产品推荐

