У меня есть клиент-серверная установка. Клиент создает прокси для связи с сервером. Когда протоколом связи является HTTPS, прокси-сервер прослушивает событие проверки сертификата SSL через следующую строку:
ServicePointManager.ServerCertificateValidationCallback += new RemoteCertificateValidationCallback(ValidateRemoteCertificate);
Метод ValidateRemoteCertificate работает с исключениями сертификата.
В клиенте пользователь может выбрать один из 3 уровней безопасности: низкий, средний и высоко. На низком уровне метод ValidateRemoteCertificate игнорирует любые ошибки и всегда возвращает значение true. На среднем уровне метод ValidateRemoteCertificate запускает событие, которое уведомляет клиента о проблеме. На этом этапе пользователю появляется сообщение, информирующее его о том, что сертификат проблематичен, и позволяет пользователю выбрать, продолжать ли и принимать соединение с сервером или отклонить. На высоком уровне метод ValidateRemoteCertificate отклоняет соединение из-за какой-либо ошибки.
Пока все хорошо.
Сценарий следующий:
Я пытаюсь достичь того, что при выполнении теста ServerCertificateValidationCallback будет вести себя так, как если бы это был его первый вызов. после того, как клиент был запущен, и ValidateRemoteCertificate вступит в игру.
Я попытался найти любой метод, который очищает любые делегаты / события в ServicePointManager, но я не смог его найти.
Здесь есть кэш, который можно очистить? Надеюсь, сценарий достаточно ясен.