如何清除客户端.Net SSL会话缓存

DVi*_*ser 11 .net ssl session caching

我正在编写一个小测试工具,它使用HttpWebRequest来加载测试服务器.我想每次尝试调用HttpWebRequest.GetResponse()时都会建立一个新的SSL会话而不是使用缓存中的会话.注意:我正在提供客户端证书,并使用SSL会话的相互身份验证.

有没有办法清除http://msdn.microsoft.com/en-us/library/system.net.httpwebrequest.clientcertificates.aspx中提到的SSL会话缓存 ?

use*_*430 6

ServicePoint类有一个内部方法ReleaseAllConnectionGroups,KeepAlive = false在所有连接上设置然后释放它们.这个答案包括所需的所有反射,但是KeepAlive = false在每个HttpWebRequest上设置将保持客户端.Net SSL会话缓存清晰.

SslEmptyCache可能需要在本机代码级别清除SSL-SessionID和/或SCHANNEL完成的票证的缓存.


iiv*_*vel 1

我认为您正在寻找 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

  • 但这是HTTP级别的缓存,不是吗?OP 请求清除 _SSL session_ 缓存(它保留临时的每会话密钥,加速初始 SSL 握手),AFAICT。 (4认同)