Compartilhar via


Redação de consulta de URI em eventos HttpClient EventSource

No .NET 9, o comportamento padrão de eventos emitidos por e (EventSource name: System.Net.Http) foi modificado para depurar cadeias de EventSource caracteres de SocketsHttpHandler consulta.HttpClient Essa alteração aprimora a privacidade, impedindo o registro de informações potencialmente confidenciais contidas em cadeias de caracteres de consulta. Se necessário, você pode substituir esse comportamento.

Versão introduzida

.NET 9 Preview 7

Comportamento anterior

Anteriormente, os eventos emitidos e HttpClient SocketsHttpHandler incluíam informações de cadeia de caracteres de consulta, o que poderia expor inadvertidamente informações confidenciais.

Novo comportamento

Com a alteração em dotnet/runtime#104741, as cadeias de caracteres de consulta são substituídas por um * caractere em HttpClient e SocketsHttpHandler events, por padrão. Essa alteração afeta eventos e parâmetros específicos, como pathAndQuery in RequestStart e redirectUri in Redirect.

Tipo de alteração interruptiva

Esta é uma alteração comportamental.

Motivo da alteração

O principal motivo para essa mudança foi aumentar a privacidade, reduzindo o risco de informações confidenciais serem registradas inadvertidamente. As cadeias de caracteres de consulta geralmente contêm dados confidenciais e redigi-los de logs por padrão ajuda a proteger essas informações.

Se você precisar de informações de cadeia de caracteres de consulta ao consumir HttpClient eventos ou SocketsHttpHandler e tiver certeza de que é seguro fazer isso, poderá habilitar o log de cadeia de caracteres de consulta globalmente definindo uma opção AppContext de uma das três maneiras:

  • No arquivo de projeto.

    <ItemGroup>
      <RuntimeHostConfigurationOption Include="System.Net.Http.DisableUriRedaction" Value="true" />
    </ItemGroup>
    
  • No arquivo runtimeconfig.json.

    {
        "runtimeOptions": {
            "configProperties": {
                "System.Net.Http.DisableUriRedaction": true
            }
        }
    }
    
  • Por meio de uma variável de ambiente.

    Defina DOTNET_SYSTEM_NET_HTTP_DISABLEURIREDACTION como true ou 1.

Caso contrário, nenhuma ação será necessária e o comportamento padrão ajudará a aprimorar os aspectos de privacidade do seu aplicativo.

Observação

Essa opção também desabilita a redação da cadeia de caracteres de consulta nos logs padrão IHttpClientFactory . Para obter mais informações, consulte Redação de consulta de URI em logs IHttpClientFactory.

APIs afetadas