![](/img/trans.png)
[英]How to read application setting of Azure App service in ASP.NET Core 6.0 Web API
[英]How can I control the HTTP response headers added to my ASP.NET core web application when hosted in Azure app service?
我们已经编写了一个ASP.NET core 2.2 Web应用程序,该应用程序基本上公开了一些Web api控制器,并且我们使用ResponseCachingMiddleware来在我们的中间件管道中实现服务器端响应缓存。
我们遵循了此Microsoft指南,并决定添加HTTP响应标头Vary,以使来自应用程序的每个响应都包含以下标头: Vary: Accept-Encoding, Accept-Charset
。
如上面链接指南中所述,需要这样做,以便响应缓存遵守客户端请求标头,以便在且仅当它们与客户端请求兼容时才使用缓存的响应。
与邮递员进行测试时,我注意到,在Azure中部署应用程序时(我们使用了标准的Azure应用程序服务来执行此操作),Vary响应标头不是我期望的:似乎Azure本身添加了值Accept-Encoding
以便Vary标头的值设置为Accept-Encoding, Accept-Charset,Accept-Encoding
(这是应用程序设置的值和Azure会自动添加的值的组合)。
那就是我有几个问题:
Accept-Encoding
附加值? Accept-Encoding, Accept-Charset,Accept-Encoding
为有效的值Vary
头? 即使我们将值重复两次也能按预期工作吗? 托管在Azure应用程序服务(在Windows之一)ASP .NET的核心仍然使用IIS所概述这里 。 因此,您应该能够通过将web.config添加到项目中来控制标头。
<configuration>
<system.web>
<httpRuntime enableVersionHeader="false" /> <!-- Removes ASP.NET version header. Not needed for Ghost running in iisnode -->
</system.web>
<system.webServer>
<security>
<requestFiltering removeServerHeader="true" /> <!-- Removes Server header in IIS10 or later and also in Azure Web Apps -->
</security>
<httpProtocol>
<customHeaders>
<clear /> <!-- Gets rid of the other unwanted headers -->
<add name="X-Frame-Options" value="SAMEORIGIN" />
</customHeaders>
<redirectHeaders>
<clear />
</redirectHeaders>
</httpProtocol>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.