如何在Excel中获取与XMLHTTP请求(如userid)一起传递的隐藏属性?

时间:2015-01-22 20:47:22

标签: rest excel-vba authentication xmlhttprequest userid

我有一个excel工作簿,它与具有身份验证的Web服务进行交互。我第一次使用带有XMLHTTP的VBA发出web服务请求时,我必须在webservice的弹出框中输入我的用户ID和密码。 Excel记住我关闭Excel应用程序之前每个连续xml请求的用户ID和密码。 REST Web服务的身份验证工具是无状态的,所以我没有保持连接。我需要捕获用户输入的用户ID,以便在Web服务URL中使用它来获取GET请求。有没有办法使用VBA从Excel中捕获用户的用户ID,以便我没有提示用户两次获取相同的信息?

Katz ,谢谢你的回复。我熟悉这些功能。我的情况不同之处在于我正在与外部安全Web服务进行交互,这需要与我的Windows域不同的用户ID。在我的情况下,webservice是无状态的,每次我调用它时,它都需要服务的唯一用户ID /密码。当使用VBA通过Excel向此Web服务发送请求时,Excel会以某种方式记住用户ID和密码,只要我不关闭Excel实例,我就不需要以交互方式输入用户ID /密码。我需要能够从Excel提取此信息的地方仅提取用户ID,以便我可以将其放在GET请求中,因为userid可以在GET请求中用作来自Web服务的响应的过滤条件。

此userid必须存储在excel或系统环境中的某个位置,以便在将后续GET请求发送到此Web服务时重用,以便在第一个请求后禁止登录窗口。任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:0)

对于本地文件,您可以使用以下代码阅读计算机名和用户名:

Set WSHnet = CreateObject("WScript.Network")
    UserName = WSHnet.UserName
    UserDomain = WSHnet.UserDomain
    Set objUser = GetObject("WinNT://" & UserDomain & "/" & UserName & ",user")
    userfullname = objUser.FullName
Workbook.Sheets("Sheet1").Cells(1, 1).Value = Environ("COMPUTERNAME") & ", " & userfullname

也许它也适用于您的在线文件