2012-12-14 100 views
1

如何配置WCF使用HTTP(無ssl)和客戶端證書?如何配置WCF以使用HTTP和客戶端證書?

在服務方面,我嘗試了以下:

<bindings> 
      <basicHttpBinding> 
       <binding name="binding1"> 
        <security mode="TransportCredentialOnly"> 
         <transport clientCredentialType="Certificate"></transport> 
        </security> 
       </binding> 
      </basicHttpBinding> 
     </bindings 

但抱怨說:

Certificate-based client authentication is not supported in TransportCredentialOnly security mode. Select the Transport security mode. 

感謝,

+1

當你把它設置爲'Transport'時會發生什麼? –

+0

Transport意味着它需要SSL和HTTPS地址,這不是我想要的。我只需要測試客戶端證書的工作。 –

回答

0

我不認爲我完全明白你的問題。

如果你想配置你綁定的安全性(basicHttpBinding)來使用客戶端證書(來驗證客戶端),據我所知,唯一的方法就是使用消息安全性,你可以找到http wcf samples中的示例。

如由此導致的異常說明,也on a Distributed Services Support Team blog

注意:使用TransportCredentialOnly模式,則不能使用基於證書的客戶端身份驗證:基於證書的 客戶端身份驗證不TransportCredentialOnly安全模式支持。

0

我從你的問題中得到的理解是你想使用你的自定義證書,它還沒有被CA(證書頒發機構)頒發。

在這種情況下,您需要在服務器上安裝相同的服務器,並且如果您使用的是.NET,則它們也需要在IIS中與您的網站連接。

希望這項工作

+0

這是不正確的,也不是與我的問題有關。僅供參考,應在哪些地方安裝證書。根CA應安裝在所有涉及的服務器(服務和客戶端)上,但客戶端證書只需安裝在客戶端機器上。 –