Creative Commons Lizenzvertrag

Dienstag, 26. August 2008

SSL-Zertifikate und das Compact Framwork

Viele Webseiten bereiten ja mit ihrem Zertifikat bei SSL-Requests Probleme. Browser fangen diese ja ab. Programmiert man selbst, muss man dies selber machen, ansonsten kommt es zu einem Laufzeit-Fehler. Bei Anwendungen mit dem Dot.Net Framework benutzte ich dazu folgendes:
ServicePointManager.ServerCertificateValidationCallback
= new System.Net.Security. style="color: #2b91af;">RemoteCertificateValidationCallback(remotecallback);
...

...

...


public bool
remotecallback(Object sender,
X509Certificate certificate,
X509Chain chain,
SslPolicyErrors sslPolicyErrors)



{



       // 
Hier entsprechenden Code einfügen



       return
true;



}


Leider funktioniert dies unter dem Compact Framework nicht, da es die Eigenschaft ServerCertificateValidationCallback nicht unterstützt. Die Lösung dazu ist, CertificatePolicy zu nutzen und eine Klasse zu schreiben, die die Schnittstelle ICertificatePolicy implementiert:


ServicePointManager.CertificatePolicy =
new
AcceptAllCertificatePolicy
();



...



 



...



 



...



 



internal class
AcceptAllCertificatePolicy
:ICertificatePolicy



{



        public AcceptAllCertificatePolicy()



        {



        }



        public bool
CheckValidationResult(ServicePoint sPoint, style="color: #2b91af;">X509Certificate cert, style="color: #2b91af;">WebRequest wRequest, style="color: blue;">int certProb)



        {



              // 
Hier entsprechenden Code einfügen


                return true;


        }



}




Dies mal als Lösungsansatz in C# für alle die damit Schwierigkeiten haben.

Kommentare ohne Google+ erstellen:

Marmel powered by Instant Communities