2
Reply

Windows application installing certificate

Sreekanth

Sreekanth

Jun 7 2011 7:14 AM
1.9k
hi ,

Following code works fine for me(courtsey stackoverflow) .

But here the code is for installing certificate which is in the same system.
What i need is a win app to install a certificate,which is in the server.

Pls help 
using (new Impersonator("username", "", "password"))
{
       
try
       
{
                X509Store serviceRuntimeUserCertificateStore
= new X509Store(StoreName.My);
               
string baseDir = AppDomain.CurrentDomain.BaseDirectory;
               
string certPath = Path.Combine(baseDir, certificateFolder);

               
string certificateFile = "c:\\file.cert";
               
string certificatePassword = "somePassword";                    
               
string certificateLocation = certPath + "\\" + certificateFile;

               
InstallCertificate(certificateLocation, certificatePassword);
       
}
       
catch (Exception ex)
       
{
               
Console.WriteLine(ex);
       
}
}

private static void InstallCertificate(string certificatePath, string certificatePassword)
{
       
try
       
{
           
var serviceRuntimeUserCertificateStore = new X509Store(StoreName.My);
        serviceRuntimeUserCertificateStore
.Open(OpenFlags.ReadWrite);

                X509Certificate2 cert
;

               
try
               
{
                        cert
= new X509Certificate2(certificatePath, certificatePassword);
               
}
               
catch(Exception ex)
               
{
                       
Console.WriteLine("Failed to load certificate " + certificatePath);
                       
throw new DataException("Certificate appeared to load successfully but also seems to be null.", ex);
               
}

                serviceRuntimeUserCertificateStore
.Add(cert);                  
                serviceRuntimeUserCertificateStore
.Close();
       
}
       
catch(Exception)
       
{
               
Console.WriteLine("Failed to install {0}.  Check the certificate index entry and verify the certificate file exists.", certificatePath);
       
}
}




Answers (2)