Zusammenfassung
ich eine Xamarin.Forms App schreibe, die Anforderungen an einen REST-API machen muss. Es muss ein Client-Zertifikat verwenden, um eine 2-Wege-SSL zu erstellen, wenn es mit dem Backend spricht.Anruf RESTful Service mit Client-Zertifikat in Xamarin.Forms
Ich möchte all dies in einem PCL wenn möglich getan werden. Was ist der beste Weg, dies zu tun?
Was ich bisher
Xamarin.Forms haben nicht enthalten das Paket System.Net.Security
. Aus diesem Grund kann ich nicht den normalen HttpClient von System.Net.Http.HttpClient
mit Client-Zertifikaten verwenden. Also brauche ich ein anderes Verschlüsselungspaket und einen anderen http-Client, der mit diesem Paket kompatibel ist.
Ich habe die Bouncy Castle Distribution für C# gefunden, die mit der Erstellung und Verwaltung des Client-Zertifikats umzugehen scheint. Aber ich habe keinen HTTP-Client gefunden, der tatsächlich eine Org.BouncyCastle.X509X509Certificate
verwenden kann, um 2-Wege-SSL einzurichten.
Bearbeiten Es scheint also, es gibt keine Möglichkeit, Client-Zertifikate im gemeinsam genutzten Code zu verwenden (bitte erleuchten Sie mich, wenn ich falsch liege!). Ich muss DependencyService verwenden, um eine iOS- und eine Android-Implementierung der Bibliothek unter Verwendung verschiedener HTTP-Stacks zu erstellen.
AFAIK, Ihre Bearbeitung ist korrekt, es gibt keine Option, Client-Zertifikat in PCL zu verwenden –
Wir haben die gleiche Antwort von den Entwicklern auf Xamarin, leider. Also gehen wir mit 3 plattformspezifischen Implementierungen vor, um zu sehen, wie viel Zeit es braucht. –