0

客观的:

将 cors origin 从命名值动态传递给 cors 策略。

例子:

假设我有以下命名值:

name: cors-origins
value: https://domain1.com;https://domain2.com

以及打算使用此命名值的 CORS 政策cors-origins

<policies>
<inbound>
    <cors>
        <allowed-origins>
            // Here I need to use {{ cors-origins }}
            // The expected output is:
            // <origin>https://domain1.com</origin>
            // <origin>https://domain2.com</origin>
        </allowed-origins>
        <allowed-methods>
            <method>GET</method>
            <method>POST</method>
        </allowed-methods>
    </cors>
</inbound>
<backend>
    <forward-request />
</backend>
<outbound />
<on-error />
</policies>

到目前为止我尝试了什么:

  1. 动态创建<allowed-origins>部分:

片段:

...
<cors>
     @{
        var origins = "{{cors-origins}}".Split(';');
        return new XElement("allowed-origins", origins.Select(domain => new XElement("origin",domain)));
        // outputs:
        // <allowed-origins>
        //   <origin>https://domain1.com</origin>
        //   <origin>https://domain2.com</origin>
        // </allowed-origins>
     }
   
...
</cors>

错误:元素“cors”不能包含文本。预期的可能元素列表:'allowed-origins、allowed-headers、expose-headers、allowed-methods'

  1. 仅动态创建<origin>元素。

问题:有没有办法实现预期目标?

4

0 回答 0