如何告诉Excel / VBA清除安全证书?

我已经为Excel写了一个VBA插件,它为服务器提供login/注销function。

我实现它的方式是向服务器上的URL发送请求,该请求检查用户是否有会话,如果没有,服务器会在头部响应(未授权)上发送401。 401响应使得Excel自动popup'windows style'login模式(这是免费的,我猜是用Excel来的)。 我input我的凭据,服务器validation用户,并创build一个会话。

我现在的问题是当我尝试注销。 服务器按预期销毁会话。 如果用户现在再次单击login,Excel向服务器发送HEAD请求,服务器以401响应,然后Excel自动发送用户之前input的相同用户名和密码凭据。 用户现在再次login。 只是要清楚 – 这不是服务器端caching,这是Excel重新发送login凭据,收到401响应后,使用HTTP标头中的基本身份validation。

这不是预期的行为,我不希望Excel存储凭证的副本,并一次又一次地重复使用它们。 如果用户注销,我希望这是永久的,直到他们决定再次login时,他们应该重新input他们的凭据。

我有问题告诉Excel / Windows / VBA? 清除无论它保留在哪里,无论它保留在哪里。 我的问题是,我不知道Excel / VBA编程的function是什么,它的function似乎是免费的,所以我不知道它存储在哪里。

为了什么是值得的,这里是我的VBA

Dim req As MSXML2.XMLHTTP60 Set req = New MSXML2.XMLHTTP60 req.Open "GET", url, False req.send 

从这个答案 :

 myURL = "http://my.domain.com/myscript.cgi" Dim oHttp As New MSXML2.XMLHTTP oHttp.Open "POST", myURL, False oHttp.setRequestHeader "Content-Type", "application/x-www-form-urlencoded'" oHttp.setRequestHeader(“Cache-Control”, “no-cache”); oHttp.setRequestHeader(“Pragma”, “no-cache”); oHttp.setRequestHeader(“If-Modified-Since”, “Sat, 1 Jan 2000 00:00:00 GMT”); oHttp.setRequestHeader "Authorization","Basic " & Base64EncodedUsernamePassword oHttp.send "PostArg1=PostArg1Value" Result = oHttp.responseText