2013-02-22 5 views

Répondre

0

Un exemple de travail d'un de mes projets. Je ne suis pas vraiment sûr si ça va marcher sur WP8, mais sur le bureau tout fonctionne bien.

Voici la classe de service.

internal class PermissiveCertificatePolicy 
{ 
    private string _subjectName; 
    private static PermissiveCertificatePolicy _currentPolicy; 

    public PermissiveCertificatePolicy(string subjectName) 
    { 
     _subjectName = subjectName; 
     ServicePointManager.ServerCertificateValidationCallback += RemoteCertValidate; 
    } 

    public static void Enact(string subjectName) 
    { 
     _currentPolicy = new PermissiveCertificatePolicy(subjectName); 
    } 

    private bool RemoteCertValidate(object sender, X509Certificate cert, 
     X509Chain chain, SslPolicyErrors error) 
    { 
     return cert.Subject == _subjectName; 
    } 
} 

Voici l'exemple d'utilisation:

namespace WcfClient 
{ 
    internal class Program 
    { 
     private const string RCertName = "CN=WMSvc-WIN-R0NU6K5QG87"; 

     private static void Main(string[] args) 
     { 
      PermissiveCertificatePolicy.Enact(RCertName); 

      using (MyClient proxy = new MyClient("Ws2007HttpBinding_IHistory")) 
      { 
       ... 
      } 
     } 
    } 
} 
+0

Merci pour votre aide. Je crains que ServicePointManager ne soit pas disponible pour WP8. – MPeli

+0

Avez-vous trouvé une solution à ce problème? –

Questions connexes