3
WCF自定義證書驗證我有託管在IIS 6 WCF應用程序需要與basicHttpBinding的
- 擁有2路SSL認證
- 驗證客戶端證書的內容與一些客戶端主機信息
- 驗證客戶端證書由有效的subCA頒發。
我能夠做到1)成功。我試圖通過遵循this來實現2)和3) - 基本上創建一個繼承X509CertificateValidator並用我自己的驗證實現(步驟2和3)覆蓋Validate方法的類。然而,我嚴格遵循MSDN指令,似乎沒有調用Validate方法。我故意在過期的Validate方法中拋出一個SecurityAccessDeniedException,並且當我試圖通過瀏覽器訪問服務時不會引發異常。我仍然可以通過任何客戶端證書訪問我的網站。
我也讀了this thread但它並沒有真正的幫助。任何幫助將不勝感激!
這裏是我的配置:
<system.serviceModel>
<services>
<service behaviorConfiguration="SimpleServiceBehavior"
name="SampleNameSpace.SampleClass">
<endpoint address=""
binding="basicHttpBinding"
bindingConfiguration="NewBinding0"
contract="SampleNameSpace.ISampleClass" />
</service>
</services>
<behaviors>
<serviceBehaviors>
<behavior name="SimpleServiceBehavior">
<serviceMetadata httpsGetEnabled="true" policyVersion="Default" />
<serviceCredentials>
<clientCertificate>
<authentication certificateValidationMode="Custom" customCertificateValidatorType="SampleNameSpace.MyX509CertificateValidator, SampleAssembly"/>
</clientCertificate>
</serviceCredentials>
</behavior>
</serviceBehaviors>
</behaviors>
<bindings>
<basicHttpBinding>
<binding name="NewBinding0">
<security mode="Transport">
<transport clientCredentialType="Certificate" />
</security>
</binding>
</basicHttpBinding>
</bindings>
我正在經歷類似的事情。在一個環境中它可以工作,但在另一個BIG-IP負載平衡環境中,它會忽略Validate方法。 – lox 2011-09-01 08:51:27