У меня есть приложение WCF, размещенного на IIS 6, который долженWCF проверки пользовательских сертификатов с BasicHttpBinding
- Есть 2-полосная аутентификации SSL
- Проверка содержимого сертификата клиента с некоторыми хоста клиента информации
- Проверка клиента сертификат выдается действительной подкатегорией.
Я был в состоянии сделать 1) успешно. Я пытаюсь достичь 2) и 3), следуя this - в основном создавая класс, который наследует X509CertificateValidator и переопределяет метод Validate с моей собственной реализацией валидации (шаги 2 и 3). Однако я следовал инструкциям MSDN, но похоже, что метод Validate не вызывается. Я намеренно бросаю исключение SecurityAccessDeniedException в переопределенном методе Validate, и никакое исключение не возникает при попытке доступа к службе через мой браузер. Я все еще могу получить доступ к моему сайту с любым сертификатом клиента.
Я также читал 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 Load Balanced он игнорирует метод Validate. – lox