![](/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.