2010-08-10 9 views
2

J'essaie d'envoyer un X509Certificate d'un gestionnaire Http à un service Web qui recevra et lira le certificat pour authentifier l'utilisateur. Je sais que le certificat envoie bien; J'ai un testeur qui me permet de regarder le HttpWebRequest avant d'envoyer, et la propriété ClientCertificates montre qu'il a un certificat attaché. (par exemple request.ClientCertificates.Count = 1).recevoir des certificats clients X509 dans des requêtes Web

Cependant, de l'autre côté du service Web, HttpRequest.ClientCertificate affiche de manière cohérente NULL. J'ai examiné un certain nombre d'exemples Microsoft KB et tous utilisent la même technique pour insérer le certificat. D'autres articles indépendants montrent que HttpRequest.ClientCertificate est le moyen préféré de le lire.

Alors, qu'est-ce que je fais de mal, et comment puis-je déterminer sur le serveur qu'un certificat client a été envoyé?

Répondre

1

Peut-être votre configuration HttpListener avec clientcertnegotiation=enable avec netsh aiderait (ce qui rend le serveur négocier le certificat de client lors de la négociation initiale, par opposition à l'utilisation de renégociation).

Il peut aussi dépendre de si vous avez initialisés le certificat du côté client avec sa clé privée, voir Can't connect to HTTPS using X509 client certificate

Questions connexes