Problem:
Das Verbinden einer Windows 8-Anwendung mit einer Test-Web-API schlägt aufgrund nicht vertrauenswürdiger SSL-Zertifikate fehl. Das Ziel besteht darin, eine Problemumgehung zu finden, die der ServerCertificateValidationCallback
-Methode ähnelt, die mit WebRequest
.
Lösung:
So umgehen Sie die SSL-Zertifikatsvalidierung mit HttpClient
in .NET Standard und bieten eine ähnliche Funktionalität wie die WebRequest
-Methode:
Instanziieren HttpClientHandler
:
<code class="language-csharp">var handler = new HttpClientHandler();</code>
Setzen Sie ClientCertificateOptions
:
<code class="language-csharp">handler.ClientCertificateOptions = ClientCertificateOption.Manual;</code>
Benutzerdefinierte Zertifikatsvalidierung implementieren: Ein Lambda-Ausdruck, der immer true
zurückgibt, deaktiviert die Zertifikatsvalidierung:
<code class="language-csharp">handler.ServerCertificateCustomValidationCallback = (_, __, ___, ____) => true;</code>
Erstellen Sie HttpClient
: Verwenden Sie den geänderten Handler, um die HttpClient
-Instanz zu erstellen:
<code class="language-csharp">var client = new HttpClient(handler);</code>
Diese Methode ermöglicht die Verbindung zur Test-API durch Ignorieren der Zertifikatsvalidierung. Es ist jedoch wichtig zu verstehen, dass dies die Sicherheit erheblich verringert und Ihre Anwendung anfällig für Man-in-the-Middle-Angriffe macht. Verwenden Sie dies nur in kontrollierten Testumgebungen und niemals in der Produktion.
Das obige ist der detaillierte Inhalt vonWie kann ich nicht vertrauenswürdige SSL-Zertifikate ignorieren, wenn ich HttpClient in .NET Standard verwende?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!