Custom валидация сертификатов на WCF под IIS
От: barrabas  
Дата: 26.11.10 08:02
Оценка:
Сервис хостится в IIS на WS2008
Почему валидатор зацикливается?
Т.е. при ексепшине снова вызывается Validate, а не отправляется "отлуп" юзеру?
я уже разные типы ексепшинов пробовал и SecurityTokenValidationException и FaultException. Юзер получает отказ только через тайаут.



public class GsX509CertificateValidator : X509CertificateValidator
{
    public GsX509CertificateValidator()
    {
      
    }
 
    public override void Validate(X509Certificate2 certificate)
    {           
            throw new  ArgumentNullException("Клиентский сертификат не был предъявлен сервису");
    }
}




В отладчике видно что ошибка генерится причем за одно обращение пользователя метод вызывается 6 раз.
Но пользователь волучает не её а просто ошибка таймайта на сокете.
Как быть, нужна именно кастомная валидация

Сама валидация работает, если сертификат предявлен и я его пропускаю (не генерю ексепшин), то юзер заходит, но как корректно давать разворот пользователю, чтобы он не ждал таймаута


Сообщение выглядит так:
####
Подключение к сокету было прервано. Возможно, это вызвано ошибкой обработки сообщения,
превышением времени ожидания на удаленном узле или проблемой с выделенным сетевым ресурсом.
Тайм-аут локального сокета: "00:00:09.9690000".
####
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.