次の方法で共有


IHttpClientFactory ログでの URI クエリの編集

.NET 9 では、URI 情報をログに記録するときにクエリ文字列をスクラブするように、 IHttpClientFactory の既定の実装が変更されました。 この変更により、クエリ文字列に含まれる可能性のある機密情報がログに記録されないようにすることで、プライバシーが強化されます。 クエリ文字列のログ記録が必要であり、安全であると見なされるシナリオでは、この動作をオーバーライドできます。

導入されたバージョン

.NET 9 Preview 7

以前の動作

以前は、 IHttpClientFactory ログの既定の実装では、 ILoggerに渡されたメッセージにクエリ文字列が含まれていました。これは、機密情報が誤って公開される可能性があります。

新しい動作

ILoggerに渡されたメッセージのクエリ文字列が*文字に置き換えられました。

破壊的変更の種類

この変更は、動作変更です。

変更理由

この変更の主な理由は、機密情報が誤ってログに記録されるリスクを減らすことでプライバシーを強化することです。 多くの場合、クエリ文字列には機密データが含まれており、既定ではログから除外することで、この情報を保護できます。

アプリケーションがクエリ文字列のログ記録に依存していて、安全であると確信できる場合は、次の 3 つの方法のいずれかで AppContext スイッチを設定することで、クエリ文字列のログ記録をグローバルに有効にすることができます。

  • プロジェクト ファイルで。

    <ItemGroup>
      <RuntimeHostConfigurationOption Include="System.Net.Http.DisableUriRedaction" Value="true" />
    </ItemGroup>
    
  • runtimeconfig.json ファイルで。

    {
        "runtimeOptions": {
            "configProperties": {
                "System.Net.Http.DisableUriRedaction": true
            }
        }
    }
    
  • 環境変数を利用して。

    DOTNET_SYSTEM_NET_HTTP_DISABLEURIREDACTIONtrue または 1 に設定します。

それ以外の場合は、アクションは必要ありません。既定の動作は、アプリケーションのプライバシーの側面を強化するのに役立ちます。

Note

このスイッチでは、EventSource イベントのクエリ文字列の編集も無効 HttpClient 。 詳細については、「httpClient EventSource イベント URI クエリの再アクション」を参照してください。

影響を受ける API