[英]WCF custom certificate validation with BasicHttpBinding
我有一個需要在IIS 6上托管的WCF應用程序
我能夠成功地做到1)。 我想實現2)和3)按照本 -基本上創建繼承X509CertificateValidator一類並覆蓋驗證方法,用我自己的驗證實現(步驟2和3)。 我完全遵循了MSDN指令,但似乎沒有調用Validate方法。 我故意在覆蓋的Validate方法中拋出SecurityAccessDeniedException,當我嘗試通過瀏覽器訪問服務時,不會拋出任何異常。 我仍然可以使用任何客戶端證書訪問我的網站。
我也讀過這個帖子,但它並沒有真正幫助。 任何幫助將不勝感激!
這是我的配置:
<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>
您還可以嘗試使用此ServerCertificateValidationCallback覆蓋證書驗證
我們以這種方式將它與WCF HttpBinding一起使用:
System.Net.ServicePointManager.ServerCertificateValidationCallback =
(sender, certificate, chain, policyErrors) =>
{
var isValid = false;
// some checking logic
return isValid;
};
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.