Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/35.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# WCF服务的自定义证书身份验证_C#_Asp.net_Wcf_Wcf Security - Fatal编程技术网

C# WCF服务的自定义证书身份验证

C# WCF服务的自定义证书身份验证,c#,asp.net,wcf,wcf-security,C#,Asp.net,Wcf,Wcf Security,我使用的是一个WCF服务,它使用“传输”绑定进行通信,使用证书进行身份验证 我的服务托管在IIS中。我必须覆盖WCF/IIS的默认身份验证并编写自定义实现 我实现了自定义X509验证器,但Api调用甚至没有到达验证器,并且在此之前失败 是否有方法覆盖默认身份验证行为 配置:-- 提前谢谢 <service name="MyService" behaviorConfiguration="MyServiceBehavior"> <endpoint binding="

我使用的是一个WCF服务,它使用“传输”绑定进行通信,使用证书进行身份验证

我的服务托管在IIS中。我必须覆盖WCF/IIS的默认身份验证并编写自定义实现

我实现了自定义X509验证器,但Api调用甚至没有到达验证器,并且在此之前失败

是否有方法覆盖默认身份验证行为

配置:--

提前谢谢

<service name="MyService" behaviorConfiguration="MyServiceBehavior">
        <endpoint binding="basicHttpBinding" bindingConfiguration="testBinding" 
           contract="MyService"/>
</service>

<basicHttpBinding>
     <binding name="testBinding"
         maxReceivedMessageSize="2147483647">
      <security mode="Transport">
         <transport clientCredentialType="Certificate"/> 
     </security>    
    </binding>
</basicHttpBinding>

<serviceBehaviors>
    <behavior name="MyServiceBehavior">
      <serviceMetadata httpsGetEnabled="true" />
       <serviceDebug includeExceptionDetailInFaults="true" />
        <serviceCredentials>
         <clientCertificate>
          <authentication certificateValidationMode="Custom"          
             customCertificateValidatorType="TestCertificateValidation 
              ,MyService"/>
         </clientCertificate>
       </serviceCredentials>         
     </behavior> 
   </serviceBehaviors>
public class TestCertificateValidation : X509CertificateValidator
{
   public override void Validate(X509Certificate2 certificate)
   {                
     return;
   }
}