我已经存储了一个基于用户ID的命名值,因此我可以通过选择的参考来识别有效负载提交者。
当我使用下面的策略时,我将值作为字符串获取,而不是实际查找命名的值。如果我只是在双大括号内写用户ID,而不是从上下文中动态获取用户ID,则查找工作正常,并且可以用我想要的命名值代替。
不可能简单地做到吗?
<policies>
<inbound>
<set-header name="x-request-context-data" exists-action="override">
<value>{{@(context.User.Id)}}</value>
</set-header>
</inbound>
</policies>
输出:
x-request-context-data: {{@(context.User.Id)}}
答案 0 :(得分:1)
在MSDN回答。
相反,您可以在策略表达式中使用命名值 不支持,并且无法按照中所述进行支持 这个feature request。
解决方法要么是
- 将命名值存储为具有key = value对的JSON字符串或CSV字符串。然后使用策略表达式来解析和获取所需的值。
- 使用control flow policies进行运行时决策。
- 对于复杂的情况,请卸载到功能应用程序中,但如果可能,请使用value caching policies来缩短延迟时间