Notatka
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
W .NET 9 domyślne zachowanie zdarzeń EventSource emitowanych przez HttpClient i SocketsHttpHandler (EventSource nazwa: System.Net.Http) zostało zmodyfikowane w celu oczyszczenia zapytania, informacji o użytkowniku i fragmentu części identyfikatora URI. Ta zmiana zwiększa prywatność, uniemożliwiając rejestrowanie potencjalnie poufnych informacji zawartych w ciągach zapytań przy jednoczesnym zachowaniu minimalnych kosztów wydajności operacji redaction. W razie potrzeby można zastąpić to zachowanie.
Wersja wprowadzona
.NET 9 (wersja zapoznawcza 7)
Poprzednie zachowanie
Wcześniej zdarzenia emitowane przez HttpClient i SocketsHttpHandler zawierały informacje z ciągu zapytania, co mogło nieumyślnie ujawniać poufne informacje.
Nowe zachowanie
Po zmianie w dotnet/runtime#104741 część zapytania jest zastępowana znakiem *, a części informacji o użytkowniku i fragmentu są domyślnie usuwane w zdarzeniach HttpClient i SocketsHttpHandler. Ta zmiana dotyczy określonych zdarzeń i parametrów, takich jak pathAndQuery w RequestStart i redirectUri w Redirect.
Typ zmiany powodującej niezgodność
Ta zmiana jest zmianą behawioralną.
Przyczyna wprowadzenia zmiany
Główną przyczyną tej zmiany było zwiększenie prywatności poprzez zmniejszenie ryzyka niezamierzonego rejestrowania poufnych informacji. Parametry zapytania często zawierają poufne dane, a ich domyślne usuwanie z logów pomaga chronić te informacje. Aby zapewnić prostą i wydajną implementację, informacje o użytkowniku i części fragmentów są również czyszczone.
Zalecana akcja
Jeśli podczas przetwarzania zdarzeń HttpClient lub SocketsHttpHandler potrzebujesz informacji o parametrach ciągu zapytania i masz pewność, że jest to bezpieczne, możesz globalnie wyłączyć redagowanie identyfikatorów URI, ustawiając przełącznik AppContext na jeden z trzech sposobów. Przełącznik pomija wszelkie maskowanie, dlatego identyfikatory URI są zgłaszane w niezmienionej postaci, łącznie z parametrami zapytania, informacjami o użytkowniku i fragmentem.
W pliku projektu.
<ItemGroup> <RuntimeHostConfigurationOption Include="System.Net.Http.DisableUriRedaction" Value="true" /> </ItemGroup>W pliku runtimeconfig.json.
{ "runtimeOptions": { "configProperties": { "System.Net.Http.DisableUriRedaction": true } } }Za pomocą zmiennej środowiskowej.
Ustaw
DOTNET_SYSTEM_NET_HTTP_DISABLEURIREDACTIONnatruelub 1.
W przeciwnym razie nie jest wymagana żadna akcja, a domyślne zachowanie pomoże zwiększyć aspekty prywatności aplikacji.
Uwaga
Ten przełącznik pomija również maskowanie identyfikatorów URI w domyślnych dziennikach IHttpClientFactory. Aby uzyskać więcej informacji, zobacz Ukrywanie zapytań URI w logach IHttpClientFactory.