2012-06-14 19 views
0

下面是我在服務器web.config文件中的配置設置,它是WCF應用程序。這裏我使用makecert.exe來創建X509證書。如何從客戶端設置默認證書以調用WCF中的服務器web方法

<serviceCredentials> <userNameAuthentication userNamePasswordValidationMode="Custom" customUserNamePasswordValidatorType= "WcfService1.CCustomValidatorClass,WcfService1"/> <serviceCertificate findValue="CN=SignedByCA1" x509FindType="FindBySubjectDistinguishedName" storeLocation="CurrentUser" storeName="My" /> </serviceCredentials>

「CN = SignedByCA1」是私鑰,現在,我想調用Web方法從客戶端WCF服務。 但我需要從客戶端設置SetDefaultCertificate,可否請幫助我如何獲得密鑰訪問私鑰X509證書。

ServiceReference1.Service1Client obj = new ServiceReference1.Service1Client();

 obj.ClientCredentials.UserName.UserName = "Sukesh"; 
     obj.ClientCredentials.UserName.Password = "Sukesh"; 

     obj.ClientCredentials.ServiceCertificate.SetDefaultCertificate(
      System.Security.Cryptography.X509Certificates.StoreLocation.CurrentUser, 
      System.Security.Cryptography.X509Certificates.StoreName.My, 
      System.Security.Cryptography.X509Certificates.X509FindType.FindBySubjectDistinguishedName, 
      "XYZ"); 

    string str = obj.GetData(1); // web method 

請幫我在這裏...

錯誤:{「的X.509證書CN = SignedByCA1鏈建設未能使用該證書有一個信任鏈,可以不進行驗證。更換證書或更改certificateValidationMode,吊銷功能無法檢查吊銷證書。\ r \ n「}

感謝, Sukesh。

回答

0

由於自簽名證書,您收到錯誤。

您可以用忽略錯誤,http://msdn.microsoft.com/en-us/library/system.net.servicepointmanager.servercertificatevalidationcallback(v=vs.100).aspx

,或者你可以安裝客戶端證書到服務器的受信任的根證書頒發機構(假設這只是發展)。

或者,當然,你可以得到簽署的證書。

+0

如果您可以更新您的文章並提供更多信息,我可以提供一些更詳細的信息。錯誤發生在服務器上?你能發佈你的web配置的system.servicemodel部分嗎? –

+0

非常感謝您的回覆,請您告訴我如何根據服務器私鑰證書創建客戶端證書。 –

+0

我能夠粘貼服務器web.config文件,但無法使用添加註釋按鈕進行提交。 –

相關問題