共用方式為


IHttpClientFactory 記錄中的 URI 查詢和片段編輯

在 .NET 9 中,記錄 URI 資訊時,的預設實 IHttpClientFactory 作已修改為清除查詢字串。 這項變更可藉由防止記錄查詢字串中包含的潛在敏感性資訊,同時將修訂的效能成本保持在最低,藉此增強隱私權。 對於記錄查詢字串是必要的且視為安全的案例,您可以覆寫此行為。

導入的版本

.NET 9 預覽 7

先前的行為

先前,記錄的預設實作 IHttpClientFactory 包含在傳遞至 ILogger的訊息中包含查詢字串,這可能會不小心公開敏感性資訊。

新的行為

傳遞至 ILogger 的訊息現在會以 * 字元取代查詢和片段部分。

中斷性變更的類型

此變更為行為變更

變更原因

這項變更的主要原因,是藉由降低不小心記錄敏感性資訊的風險來增強隱私權。 查詢字串通常包含敏感數據,並預設從記錄中排除它們有助於保護此資訊。 為了保持實作簡單且有效率,片段部分也會進行清除。

如果您的應用程式依賴記錄查詢字串,而且您確信可以安全地執行此動作,您可以透過下列三種方式之一設定 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。

否則,不需要採取任何動作,且預設行為將有助於增強應用程式的隱私權層面。

注意

此參數也會停用 EventSource 事件中的 HttpClient 查詢字串修訂。 如需詳細資訊,請參閱 HttpClient EventSource 事件中的 URI 查詢修訂。

受影響的 API