Dot-Net

如何清除客戶端 .Net SSL 會話記憶體

  • October 31, 2016

我正在編寫一個小測試工具,它使用 HttpWebRequest 對伺服器進行負載測試。每次我嘗試呼叫 HttpWebRequest.GetResponse() 時,我都希望它建立一個新的 SSL 會話,而不是使用記憶體中的會話。注意:我正在提供客戶端證書,並為 SSL 會話使用相互身份驗證。

有沒有辦法清除http://msdn.microsoft.com/en-us/library/system.net.httpwebrequest.clientcertificates.aspx中提到的 SSL 會話記憶體 ?

我認為您正在尋找 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

ServicePoint 類有一個名為的內部方法ReleaseAllConnectionGroups,它設置KeepAlive = false所有連接然後釋放它們。這個答案包括所有需要的反射,但是KeepAlive = false每個 HttpWebRequest 的設置都會保持客戶端的 .Net SSL 會話記憶體清晰。

SslEmptyCache可能需要清除SCHANNEL 在本機程式碼級別完成的 SSL-SessionID 和/或票證的記憶體。

引用自:https://stackoverflow.com/questions/5250887