我已经为Excel编写了一个VBA插件,它提供了与服务器的登录/注销功能。我实现的方式是向服务器上的URL发送请求,检查用户是否有会话,如果没有,则服务器在头响应中发送401(未授权)。401响应使Excel自动弹出“Windows样式”的登录对话框(我想这是Excel免费提供的)。我输入我的凭据,服务器验证用户并创建会话。
现在我的问题是当我尝试注销时。服务器按预期销毁会话。如果用户现在再次点击登录,Excel会向服务器发送HEAD请求,服务器会响应401,然后Excel会自动发送之前用户输入的相同用户名和密码凭据。现在用户已经重新登录。请注意 - 这不是服务器端缓存,而是Excel在收到401响应后使用HTTP标头中的基本身份验证自动重发登录凭据。
这不是预期的行为,我不希望Excel存储凭据的副本,并一遍又一遍地重复使用它们。如果用户注销,我希望这是永久性的,直到他们决定再次登录,在那时他们应该重新输入他们的凭据。
我的问题是告诉Excel / Windows / VBA?清除它保留的任何内容,无论它在哪里保留。我的问题是,我真的不知道Excel / VBA侧面的编排是什么,它似乎是免费提供的功能,因此我不知道这是存储在哪里。以下是我的VBA代码。
现在我的问题是当我尝试注销时。服务器按预期销毁会话。如果用户现在再次点击登录,Excel会向服务器发送HEAD请求,服务器会响应401,然后Excel会自动发送之前用户输入的相同用户名和密码凭据。现在用户已经重新登录。请注意 - 这不是服务器端缓存,而是Excel在收到401响应后使用HTTP标头中的基本身份验证自动重发登录凭据。
这不是预期的行为,我不希望Excel存储凭据的副本,并一遍又一遍地重复使用它们。如果用户注销,我希望这是永久性的,直到他们决定再次登录,在那时他们应该重新输入他们的凭据。
我的问题是告诉Excel / Windows / VBA?清除它保留的任何内容,无论它在哪里保留。我的问题是,我真的不知道Excel / VBA侧面的编排是什么,它似乎是免费提供的功能,因此我不知道这是存储在哪里。以下是我的VBA代码。
Dim req As MSXML2.XMLHTTP60
Set req = New MSXML2.XMLHTTP60
req.Open "GET", url, False
req.send