HttpClient EventSource 事件中的 URI 查詢和片段修訂
在 .NET 9 中,HttpClient 和 SocketsHttpHandler 所發出 EventSource 事件的預設行為 System.Net.Http
EventSource
已修改為清除 URI 的查詢和片段部分。 這項變更可藉由防止記錄查詢字串中包含的潛在敏感性資訊,同時將修訂的效能成本保持在最低,藉此增強隱私權。 如有必要,您可以覆寫此行為。
導入的版本
.NET 9 預覽 7
先前的行為
先前,由 HttpClient
和 SocketsHttpHandler
包含的查詢字串資訊發出的事件,可能會不小心公開敏感性資訊。
新的行為
隨著 dotnet/runtime#104741RequestStart
中的 pathAndQuery
,以及 Redirect
中的 redirectUri
。
中斷性變更的類型
此變更為行為變更。
變更原因
這項變更的主要原因,是藉由降低不小心記錄敏感性資訊的風險來增強隱私權。 查詢字串通常包含敏感數據,並預設會從記錄中加以修訂,有助於保護此資訊。 為了保持實作簡單且有效率,片段部分也會進行清除。
建議的動作
如果您在取用 HttpClient
或 SocketsHttpHandler
事件時需要查詢字串資訊,而且確信可以放心地這麼做,您可以透過下列三種方式之一設定 AppContext 參數,以全域方式啟用查詢字串記錄:
在專案檔中。
<ItemGroup> <RuntimeHostConfigurationOption Include="System.Net.Http.DisableUriRedaction" Value="true" /> </ItemGroup>
在 runtimeconfig.json 檔案中。
{ "runtimeOptions": { "configProperties": { "System.Net.Http.DisableUriRedaction": true } } }
透過環境變數。
將
DOTNET_SYSTEM_NET_HTTP_DISABLEURIREDACTION
設定為true
或 1。
否則,不需要採取任何動作,且預設行為將有助於增強應用程式的隱私權層面。
注意
此參數也會停用默認 IHttpClientFactory
記錄中的查詢字串修訂。 如需詳細資訊,請參閱 IHttpClientFactory 記錄中的 URI 查詢修訂。