Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

Sujet : [WebService] Utilisation d'un certificat dans un WebService [ Réseau & Internet / Autre ] (Verrisan)

jeudi 12 avril 2007 à 16:13:46 | [WebService] Utilisation d'un certificat dans un WebService

Verrisan

Membre Club

Bonjour tout le monde,

je dois appeler depuis mon Service Web un autre Service Web avec un certificat. J'ai procédé comme suit:

[CODE]
...
        string certPath = @"C:\cb\certificat\Test.cer";
...

classProxy proxy = new classProxy();

.....

proxy.Url = @"https://....";
proxy.ClientCertificates.Add(X509Certificate.CreateFromCertFile(certPath));
....
prox.chercher(....);
....
[/CODE]

Lorsque je fais proxy.chercher une exception est déclanchée et le message d'erreur suivant apparaît:

[QUOTE]La connexion sous-jacente a été fermée : Impossible d'établir une relation de confiance pour le canal sécurisé SSL/TLS.
[/QUOTE]

Dans InnerException, j'ai le message suivant:
[CODE]
Le certificat distant n'est pas valide selon la procédure de validation.
[/CODE]

Est-ce quelqu'un connaît la "procédure de validiation ou sait où je peux trouver des infos à ce sujet.

Par avance, merci pour votre aide!

Cédric


jeudi 12 avril 2007 à 16:25:44 | Re : [WebService] utilisationt d'un certificat dans un WebService

zebobo5

Membre Club
Salut, essaye d'ajouter ca dans ton code et dis moi si ca marche :

ServicePointManager.ServerCertificateValidationCallback = delegate(Object obj, X509Certificate certificate, X509Chain chain, System.Net.Security.SslPolicyErrors errors)
{
    return true;
};

ServicePointManager.MaxServicePointIdleTime = 100000;



ZeBobo5
N'oubliez pas de cloturer votre post.

jeudi 12 avril 2007 à 16:26:46 | Re : [WebService] utilisationt d'un certificat dans un WebService

zebobo5

Membre Club
ou en C# 1.1 :

System.Net.ServicePointManager.CertificatePolicy = new TrustAllCertificatePolicy();
ServicePointManager.MaxServicePointIdleTime = 100000;



ZeBobo5
N'oubliez pas de cloturer votre post.

jeudi 12 avril 2007 à 22:08:33 | Re : [WebService] Utilisation d'un certificat dans un WebService

Verrisan

Membre Club
Salut,

j'ai ajouté ton code avant le déclenchement de l'exception dans le catch(...), mais rien ne se passe, c'est-à-dire que je n'ai pas d'erreur! Est-ce normal???

Merci pour ton aide

Cédric

vendredi 13 avril 2007 à 09:17:29 | Re : [WebService] Utilisation d'un certificat dans un WebService

zebobo5

Membre Club
Re,
mets le code directement dans ta classe


ZeBobo5
N'oubliez pas de cloturer votre post.

mardi 17 avril 2007 à 09:27:25 | Re : [WebService] Utilisation d'un certificat dans un WebService

Verrisan

Membre Club

Salut Zebobo5,

Comme j'utilise Visual Studio 2005, j'ai pris le code de ton premier exemple et je l'ai ajouté dans la classe comme suit:

[CODE]

public class ZPKTest : System.Web.Services.WebService
{
    public ZPKTest () {

        //Supprimez les marques de commentaire dans la ligne suivante si vous utilisez des composants conçus
        //InitializeComponent();

        ServicePointManager.ServerCertificateValidationCallback = delegate(Object obj, X509Certificate certificate, X509Chain chain, System.Net.Security.SslPolicyErrors errors)
 {
     return true;
 };

        ServicePointManager.MaxServicePointIdleTime = 100000;

    }

    [WebMethod]
    public string testCert()
    {

...
 try
 {
...
        string certPath = @"C:\cb\certificat\Test.cer";
...

 classProxy proxy = new classProxy();

.....

 proxy.Url = @"https://....";
 proxy.ClientCertificates.Add(X509Certificate.CreateFromCertFile(certPath));
....
 proxy.chercher(....);
....
 }
 catch (Exception e)
 {
....
 }

        return "OK";

    }
}
[/CODE]

En faisant, j'ai toujours l'exception qui est déclenché, dès que la méthdoe chercher est appelée (proxy.cerhcher()), mais le message est différent d'avant.

Dans e.message j'ai ceci:

La demande a échoué avec l'état HTTP 401 : Unauthorized.

Dans InnerException, je n'ai rien car = null.

Est-ce que ma façon de faire est juste! Est-ce que tu aurais une idée!

Par avance, merci beaucoup pour ton aide!

Cédric


mardi 24 avril 2007 à 10:29:04 | Re : [WebService] Utilisation d'un certificat dans un WebService

Verrisan

Membre Club

Bonjour tout le monde,

Par rapport au message précédent, j'ai ajouté l'élément NetworkCredential credentials.... comme suit:

[CODE]

public class ZPKTest : System.Web.Services.WebService
{
    public ZPKTest () {

        //Supprimez les marques de commentaire dans la ligne suivante si vous utilisez des composants conçus
        //InitializeComponent();

        ServicePointManager.ServerCertificateValidationCallback = delegate(Object obj, X509Certificate certificate, X509Chain chain, System.Net.Security.SslPolicyErrors errors)
 {
     return true;
 };

        ServicePointManager.MaxServicePointIdleTime = 100000;

    }

    [WebMethod]
    public string testCert()
    {

...
 try
 {
...
        string certPath = @"C:\cb\certificat\Test.cer";
...

 classProxy proxy = new classProxy();

.....

 proxy.Url = @"https://....";
 proxy.ClientCertificates.Add(X509Certificate.CreateFromCertFile(certPath));
....

NetworkCredential credentials = new NetworkCredential("user1", "mot de passe");
proxy.PreAuthenticate = true;
CredentialCache cache = new CredentialCache();
cache.Add(new Uri("https://..."), "Basic", credentials);
cache.Add(new Uri("https://..."), "Digest", credentials);
cache.Add(new Uri("https://..."), "kerberos", credentials);

params inf = new param(....);
prox.Credentials = cache;

result  res = proxy.chercher(param);
....
 }
 catch (Exception e)
 {
....
 }

        return "OK";

    }
}
[/CODE]

Avec ceci, je n'ai plus d'exception qui est déclenchée, mais le contenu de la variable res est null. J'ai vérifier le contenu de la variable param qui contient les différents paramètres, dans XMLSPY qui sont correcte, car ce programme permet aussi d'envoyer des requête SOAP et en l'utilisant, j'arrive avoir des réponse, mais pas depuis le Service Web.

Est-ce quelqu'un connaîtrait la raison pour laquelle cela ne fonctionne depuis mon Service Web?

Par avance, merci beaucoup pour votre aide!

Cédric




Cette discussion est classé dans : code, utilisation, proxy, webservice, certificat


Répondre à ce message

Sujets en rapport avec ce message

Pb avec mon WebService : perte de variable [ par vow ] Bonjour @ tousJe me suis mis au C# depuis peu de temps, et je crée mon premier WebService.Un client appelle ce WS.Mon problème est que j'ai l'impressi WebService avec VisualStudio et utilisation d'une librairie extèrieure [ par mitsew ] Bonjour,J'ai crée un web service qui fait appel à une librairie que j'ai crée. Cette librairie s'appelle Messages et contiends diversent classes toute SOAP : utilisation de wsld ou webmatrix ... [ par kaeser78 ] Bonjour, J'ai une question super conne .. Comment passer le firewall avec wsld.exe ou WebMatrix (webservice proxy generator) ? Ces appli n'ayant pas recherche code pour scrolling vertical [ par Oziris ] bonjour,je recherche un code qui permet de faire defiller un texte verticalement que je voudrer ajouter a une formmerci de vos reponse et de votre aid Utilisation de DBNull [ par Eric25 ] Bonjour,J'effectue une requete d'insertion dans laquelle j'ai un champ DateTime. Ce champ peut avoir été alimenté ou non.Dans la cas ou le champ n'a p Webservice C# et client Jdevelopper URGENT [ par kmikaz ] Salut a tous, je dois developper un webservice en c# pour des clients qui sont developpés sous JDevelopper 9. Le probleme c'est que j'ai une signature PROBLEME urgent sur une erreur etrange, du a un tableau de structure [ par masakoche ] l'erreur est la suivante : Accessibilité incohérente : le type de paramètre 'ConsoleApplication1.Class1.PERS[]' est moins accessible que la méthode 'C Utilisation SDK VSS (Volume Shadow copy Service) [ par hduchemin ] Bonjour à tous,J'ai installé le SDK VSS sur mon poste.J'ai ajouté la référence VSTSTC dans mon projet c#J'ai ajouté Using System.Runtime.InteropServic Utilisation de la classe courante partout [ par chental ] Bonjour,Je débute en c# et j'ai un souci concernant l'utilisation des classes.Je déclare une classe que j'instancie sur une form qui en appele d'autre Headers HTTP et Navigateur [ par fc_pute ] Bonsoir à tous,Alors voila mon probleme, je veux faire une sorte de proxy http.Malheureusement, ce proxy marche uniquement avec les fichier de texte b


Nos sponsors

Sondage...

CalendriCode

Septembre 2008
LMMJVSD
1234567
891011121314
15161718192021
22232425262728
2930     

Consulter la suite du CalendriCode

Téléchargements



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel BAÏSE, Merci à Vincent pour ses précieux conseils
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés
Temps d'éxécution de la page : 0,59 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.