2012-04-30 223 views
2

我目前使用netTcpBinding與Windows身份驗證(用C#編寫的程序)。我將遠離域身份驗證(添加不在域中的新客戶端),並希望通過用戶名/密碼身份驗證設置證書安全性。從我到目前爲止閱讀的內容來看,我不一定需要客戶端證書(這很好,我不能在每個客戶端上安裝該服務的證書)。我的想法與使用來自可信CA的證書導航到安全網站的思路是一致的;它承認它是值得信賴的,不會提出任何問題或給予任何麻煩,它只是接受證書!WCF證書身份驗證僅服務(無客戶端證書)

到目前爲止,我已經設置了服務證書(我們有一個來自GoDaddy的通配證書),但是我無法弄清楚我必須對app.config文件做出什麼修改來不需要客戶端證書。

服務的app.config:

<serviceBehaviors> 
    <behavior name=""> 
    <serviceMetadata httpGetEnabled="false" httpsGetEnabled="false" /> 
    <serviceDebug includeExceptionDetailInFaults="false" /> 
    <serviceCredentials> 
     <clientCertificate> 
     <authentication certificateValidationMode="None" revocationMode="NoCheck" /> 
     </clientCertificate> 
     <serviceCertificate findValue="*.xxxxxx.com" 
          storeLocation="LocalMachine" 
          storeName="TrustedPublisher" 
          x509FindType="FindBySubjectName" /> 
    </serviceCredentials> 
    </behavior> 
</serviceBehaviors> 

客戶端的app.config:

 <security mode="Transport"> 
     <transport clientCredentialType="Certificate" protectionLevel="EncryptAndSign" /> 
     <message clientCredentialType="UserName" /> 
     </security> 

我知道我必須設立用戶名部分的自定義驗證,但我想一步一步來。謝謝,讓我知道你是否需要進一步的細節。

回答

3

將clientCredentialType更改爲None。在服務器配置上也要這樣做。

+1

謝謝,我會試一試,讓你知道它是如何工作的! – jmgardn2

+1

工作完美!感謝您的幫助! – jmgardn2

相關問題