2013-06-20 4 views
6

J'utilise SharpSVN et j'ajoute un dossier à la subversion. Ensuite, j'essaie de le commettre et je reçois cette exception:SharpSVN - Échec de la vérification du certificat du serveur

SharpSvn.SvnRepositoryIOException: OPTIONS of 'https://sth.com/svn/blah/Documents': Server certificate verification failed: certificate has expired, certificate issued for a different hostname, issuer is not trusted

Pour autant que je vois ici: Server certificate verification failed

..il semble que je dois utiliser une option --trust-server-cert, mais je n » t voir ceci n'importe où dans les arguments de SvnCommitArgs.

Aussi, j'ai trouvé ceci: How do I use a custom Certificate Authority in SharpSvn without installing the certificate

..where Je vois ceci:

client.Configuration.SetOption(...) 

Mais je ne sais pas quels paramètres je dois fournir pour le faire commettre sans problème.

Est-ce que quelqu'un a fait quelque chose de similaire?

EDIT: J'ai aussi essayé de faire ceci:

client.Authentication.SslServerTrustHandlers += new EventHandler<SharpSvn.Security.SvnSslServerTrustEventArgs>(Authentication_SslServerTrustHandlers); 

    void Authentication_SslServerTrustHandlers(object sender, SharpSvn.Security.SvnSslServerTrustEventArgs e) 
    { 
     // Accept ceritificate here? 
    } 

Mais je ne comprends pas ce que je dois faire dans le gestionnaire d'accepter le certificat ... :(

Répondre

10

OK .. Je l'ai résolu ce problème et maintenant je reçois une autre erreur ce que vous devez faire est la suivante:

client.Authentication.SslServerTrustHandlers += new EventHandler<SharpSvn.Security.SvnSslServerTrustEventArgs>(Authentication_SslServerTrustHandlers); 
    void Authentication_SslServerTrustHandlers(object sender, SharpSvn.Security.SvnSslServerTrustEventArgs e) 
    { 
     // Look at the rest of the arguments of E, whether you wish to accept 

     // If accept: 
     e.AcceptedFailures = e.Failures; 
     e.Save = true; // Save acceptance to authentication store 
    } 
+1

Assurez-vous que vous regardez aussi l'autre argument de "E" et vérifier. Cela permet * tous * les certificats SSL (également expirés, révoqués, etc.) –

Questions connexes