Accessing webservice that requires client certificate

Dec 4 2008 8:36 AM

Hi Guys,

I am trying to access a webservice that requires client certificate for authentication. The client has sent us the certificate(.p12) along with the password, and I have installed the certificate under my local machine store as explained in the following article.

http://support.microsoft.com/kb/901183.

 

Using WSE2.0 I am also able to pull the certificate using the following code:

// WSE 2.0 method
  X509CertificateStore store =
    X509CertificateStore.LocalMachineStore(X509CertificateStore.MyStore);
  store.OpenRead();
  // Look for the first certificate that is named SecureMathClient.
  // Look in the local machine store.
  X509CertificateCollection col=
    (X509CertificateCollection)store.FindCertificateBySubjectString(certName);
  X509Certificate cert =null;
  try
  {

// This sample obtains the first matching certificate from the collection.
    cert = col[0];
  }
  catch(Exception ex)
  {
    throw new Exception("Certificate not Found!");
  }

What I want now is how to access the webservice by passing the client certificate through my .net web application. I cannot add reference to the webservice by using Add Webreference because I get an error saying that particular webservice requires a certificate.

Some of the code samples I am refering to keeps talking about creating a webservice proxy. How do i create the proxy when  i cannont add the reference to the webservice?

 Thank you all in advance for your help


Answers (2)