首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何修改Azure API基础策略而不完全覆盖它?

如何修改Azure API基础策略而不完全覆盖它?
EN

Stack Overflow用户
提问于 2017-04-21 20:44:07
回答 1查看 1.3K关注 0票数 2

在Azure管理中,我试图修改API中单个路由的CORS策略。我遇到的问题是,我不知道如何修改基本策略。Azure似乎只是简单地用新的策略来覆盖它。

简单的基本政策:

代码语言:javascript
复制
<policies>
<inbound>
    <cross-domain>
        <cross-domain-policy>
            <allow-http-request-headers-from domain="*" headers="*" />
        </cross-domain-policy>
    </cross-domain>
    <cors>
        <allowed-origins>
            <origin>*</origin>
        </allowed-origins>
        <allowed-methods>
            <method>*</method>
        </allowed-methods>
        <allowed-headers>
            <header>*</header>
        </allowed-headers>
    </cors>
</inbound>
<backend>
    <forward-request />
</backend>
<outbound>
</outbound>
</policies>

在特定的路由中,我希望修改<cors>部分以包含更多的策略,如下所示:

代码语言:javascript
复制
<policies>
<inbound>
    <base />
    <cors>
        <expose-headers>
            <header>Content-Disposition</header>
        </expose-headers>
    </cors>
</inbound>
</policies>

然而,Azure想要用这个覆盖基本CORS策略。我在文档中找不到任何关于如何修改/合并策略而不是批量替换策略的内容。

那么,我将如何继承基本策略,但只需添加这一额外的<expose-headers>策略?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-04-21 22:28:27

目前这是不可能的。一旦定义了请求范围(产品、API和操作匹配),策略的工作方式就是从上层用策略替换所有标记。由此产生的有效策略只是一个连续执行的语句的平面列表。从这个意义上说,您无法在较低级别上控制父级策略。

但是,在执行父策略之前,始终可以插入一些内容。为此,只需将另一个完全指定的CORS策略放在标记之前,在产生的策略中,它将首先执行。

每个有效策略都有多个CORS策略是可以的,它们将被一个接一个地执行,并且第一个能够处理CORS调用(起源、方法、头匹配)的策略将采取行动。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43551713

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档