Freigeben über


URI-Abfrage redaction in HttpClient EventSource-Ereignissen

In .NET 9 wurde das Standardverhalten von EventSource Ereignissen, die von HttpClient und SocketsHttpHandler (EventSource Name: System.Net.Http) ausgegeben werden, geändert, um Abfragezeichenfolgen zu löschen. Diese Änderung verbessert den Datenschutz, indem verhindert wird, dass potenziell vertrauliche Informationen in Abfragezeichenfolgen protokolliert werden. Bei Bedarf können Sie dieses Verhalten außer Kraft setzen.

Eingeführt in Version

.NET 9 Preview 7

Vorheriges Verhalten

Zuvor wurden Ereignisse, die von HttpClient Abfragezeichenfolgeninformationen ausgegeben und SocketsHttpHandler eingeschlossen wurden, die versehentlich vertrauliche Informationen verfügbar machen können.

Neues Verhalten

Mit der Änderung in dotnet/runtime#104741 werden Abfragezeichenfolgen standardmäßig durch ein * Zeichen in HttpClient und SocketsHttpHandler Ereignisse ersetzt. Diese Änderung wirkt sich auf bestimmte Ereignisse und Parameter wie pathAndQuery in RequestStart und redirectUri in Redirectaus.

Typ des Breaking Changes

Diese Änderung ist eine Verhaltensänderung.

Grund für die Änderung

Der Hauptgrund für diese Änderung war es, den Datenschutz zu verbessern, indem das Risiko, dass vertrauliche Informationen versehentlich protokolliert werden, reduziert wird. Abfragezeichenfolgen enthalten häufig vertrauliche Daten, und das Standardmäßige Redacting von Protokollen trägt zum Schutz dieser Informationen bei.

Wenn Sie Abfragezeichenfolgeninformationen benötigen, wenn Sie Daten verwenden oder SocketsHttpHandler Ereignisse verwenden HttpClient und sicher sind, dass dies sicher ist, können Sie die Abfragezeichenfolgenprotokollierung global aktivieren, indem Sie einen AppContext-Switch auf eine von drei Arten festlegen:

  • In der Projektdatei.

    <ItemGroup>
      <RuntimeHostConfigurationOption Include="System.Net.Http.DisableUriRedaction" Value="true" />
    </ItemGroup>
    
  • In der runtimeconfig.json-Datei.

    {
        "runtimeOptions": {
            "configProperties": {
                "System.Net.Http.DisableUriRedaction": true
            }
        }
    }
    
  • Über eine Umgebungsvariable.

    DOTNET_SYSTEM_NET_HTTP_DISABLEURIREDACTION wird auf true oder 1 festgelegt.

Andernfalls ist keine Aktion erforderlich, und das Standardverhalten trägt dazu bei, die Datenschutzaspekte Ihrer Anwendung zu verbessern.

Hinweis

Diese Option deaktiviert auch die Bearbeitung von Abfragezeichenfolgen in den Standardprotokollen IHttpClientFactory . Weitere Informationen finden Sie unter URI-Abfrage redaction in IHttpClientFactory-Protokollen.

Betroffene APIs