// Acquires a client certificate from the service utility endpoint and // attempts to install it into the store. All failures are // propagated back to the caller. private static X509Certificate2 InstallClientCertificateFromServer() { X509Certificate2 clientCertificate = null; BasicHttpBinding basicHttpBinding = new BasicHttpBinding(); ChannelFactory <IUtil> factory = null; IUtil serviceProxy = null; try { factory = new ChannelFactory <IUtil>(basicHttpBinding, new EndpointAddress(ServiceUtil_Address)); serviceProxy = factory.CreateChannel(); byte[] certdata = serviceProxy.GetClientCert(false); clientCertificate = new X509Certificate2(certdata, "test", X509KeyStorageFlags.PersistKeySet); clientCertificate = CertificateManager.InstallCertificateToMyStore(clientCertificate); } finally { CloseCommunicationObjects((ICommunicationObject)serviceProxy, factory); } return(clientCertificate); }