程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> C# >> C#入門知識 >> 比較難 如何手工 或編程實現 調用 X.509 certificate 簽名的 https WCF Service

比較難 如何手工 或編程實現 調用 X.509 certificate 簽名的 https WCF Service

編輯:C#入門知識

當你在visual studio裡 用 add service reference 調用一個只需X.509 certificate 簽名 https WCF Service ,visual studio 自動生成一些代碼和app.config或者web.config xml代碼,基於這些自動生成的東東,很容易調用,但是部署時比較麻煩,得拷貝那些xml代碼。

我搞了很長時間,終於搞懂了手工實現或者 programmatically implement,也就是無需機器生成的config xml代碼

主要是給ChannelFactory添加X.509 certificate

service url 是 https://service.uhone.com/QuoteTransfer/QuoteTransfer.svc


[csharp]
BasicHttpBinding binding = new System.ServiceModel.BasicHttpBinding();  
binding.Security.Mode = System.ServiceModel.BasicHttpSecurityMode.TransportWithMessageCredential; 
binding.Security.Message.ClientCredentialType = System.ServiceModel.BasicHttpMessageCredentialType.Certificate; 
EndpointAddress endpoint = new EndpointAddress(url);  
ChannelFactory<QuoteTransferContract> factory = new ChannelFactory<QuoteTransferContract>(binding, endpoint);  
factory.Credentials.ClientCertificate.SetCertificate(StoreLocation.CurrentUser, StoreName.My, X509FindType.FindBySubjectDistinguishedName, "CN=****");  
QuoteTransferContract proxy = factory.CreateChannel();  
return proxy.SaveQuoteTransfer(request); 

 

 

 

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved