2016-12-06 113 views
0

在WCF或Web服務我們的客戶機憑證標記添加證書的詳細信息如下:SSL證書的詳細信息

<clientCredentials> 
    <clientCertificate storeLocation="LocalMachine" x509FindType="FindBySubjectName" storeName="My" findValue="XYZ" /> 
</clientCredentials> 

但我們如何配置它在REST客戶端的情況下,我們只需要訪問RestFul服務的URI。

+0

? – Alex

+0

它是一個網絡API,我現在用的HttpWebRequest – Techie

+0

http://stackoverflow.com/questions/23451024/webrequest-not-sending-client-certificate – Alex

回答

0

您可以添加一個客戶端證書,以這樣的Web請求。

X509Store store = new X509Store("My", StoreLocation.CurrentUser); 
store.Open(OpenFlags.ReadOnly); 

X509Certificate2Collection certificates = store.Certificates.Find(X509FindType.FindBySubjectKeyIdentifier, "XYZ", true); 
X509Certificate2 certificate = certificates[0]; 

HttpWebRequest request = new HttpWebRequest(); 
request.ClientCertificates.Add(certificate); 

注:WebRequest已過時。

嘗試使用HttpClient的替代,這將看看什麼是您使用REST客戶端這樣的事情

X509Store store = new X509Store("My", StoreLocation.CurrentUser); 
store.Open(OpenFlags.ReadOnly); 

X509Certificate2Collection certificates = store.Certificates.Find(X509FindType.FindBySubjectKeyIdentifier, "XYZ", true); 
X509Certificate2 certificate = certificates[0]; 

WebRequestHandler handler = new WebRequestHandler(); 
handler.ClientCertificates.Add(certificate); 
HttpClient client = new HttpClient(handler); 
+0

訪問URI但有一種方法來讀取證書細節,如店名,位置,價值等從web.config?我必須作出詳細配置 – Techie

+0

肯定的,只是通過他們使用ConfigurationManager中,或無論你讀你的配置文件 – Alex

+0

感謝@Alex我能夠在商店名稱的傳遞和尋找價值的證書,但無法將其配置爲查找類型和存儲位置 – Techie