Как очистить кеш сеанса .Net SSL на стороне клиента - PullRequest
10 голосов
/ 09 марта 2011

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

Есть ли способ очистить кэш сеанса SSL, указанный в http://msdn.microsoft.com/en-us/library/system.net.httpwebrequest.clientcertificates.aspx?

Ответы [ 2 ]

6 голосов
/ 31 октября 2016

Класс ServicePoint имеет внутренний метод с именем ReleaseAllConnectionGroups, который устанавливает KeepAlive = false для всех соединений, а затем освобождает их. Этот ответ включает в себя все необходимые отражения, но установка KeepAlive = false для каждого запроса HttpWebRequest сохранит кэш сеанса SSL на стороне клиента.

SslEmptyCacheможет потребоваться очистить кэширование SSL-SessionID и / или билетов, выполненных SCHANNEL на уровне нативного кода.

1 голос
/ 10 марта 2011

Я думаю, что вы ищете значение перечисления HttpRequestCacheLevel NoCacheNoStore

http://msdn.microsoft.com/en-us/library/system.net.cache.httprequestcachelevel.aspx

Затем вы можете перезаписать HttpRequestCachePolicy

http://msdn.microsoft.com/en-us/library/system.net.webrequest.cachepolicy.aspx

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...