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