通过安全代理从站点检索数据



我的客户将使用我正在处理的sub访问我公司的网站以检索数据信息。这必须使用安全代理来完成,因为他的公司阻止访问某些网站。我不能在他的电脑上测试我的潜艇,显然他不能发送代理信息(即:用户名、密码、ip、端口…)

Sub login_sub()
    url = "http://localhost/php004/loginExcelAddin.php?username=" + username + "&password=" + password
    Dim httpObject As Object
    Dim response As String
    Set httpObject = CreateObject("WinHttp.WinHttpRequest.5.1")
    httpObject.Open "GET", url, False
    httpObject.SetProxy HTTPREQUEST_PROXYSETTING_PROXY, proxyIP + ":" + proxyPortNumber
    httpObject.send
    response = httpObject.responseText
    On Error GoTo errorHandler
    If response = True Then
        loggedIn = True
        MsgBox "You are logged in"
    End If
    Application.Calculate
    Exit Sub
errorHandler:
    MsgBox "Login has failed"
End Sub

(用户名、密码、proxyPortNumber、proxyIP是表单中填写的公共变量)

我在这个问题上挣扎了一段时间。任何人都可以告诉我,如果我的方向是正确的,我可以为客户发送这个代码吗?

感谢

啊,在我的职业生涯中,我已经经历过很多次了。从测试策略的角度来看(而不是回顾上面的代码),有几种可能的方法组合来测试所有这些:

  1. 客户的IT部门应该能够向您提供其代理希望如何将客户身份信息包含在出站请求中的规范。一些代理可以在请求报头中使用替代认证信息数据;您需要确切地知道客户端的代理是如何要求传递身份验证数据的(这可能会给可能使用ActiveDirectory/LDAP作为中介的企业代理带来麻烦)
  2. 测试的理想第一阶段是在自己的公司内部设置一个测试验证代理,该代理尽可能与客户端的品牌、版本和配置相同。将Excel代码放在笔记本电脑上,并将笔记本电脑连接到此测试代理的"外部"。这将允许您通过访问您控制下的类似代理来测试代码以找出错误
  3. 当然,客户端的代理可能与您的测试代理不太一样,所以即使在执行了第2步之后,一旦您将其提供给客户端,仍然可能存在问题。如果允许客户端使用像WebEx这样的窗口共享服务,那么您可以与客户端建立WebEx会话,并让他们在第一次使用您的代码时与您共享屏幕。如果失败,您可以在查看调试结果的同时,通过Excel调试器的调试会话与他们交谈。
    • 3a。如果客户的IT部门允许一个更全面的共享工具,让你远程控制客户的桌面(当他们在观看时),那将是更理想的。但是,如果客户的IT部门已经在进行对外代理,他们可能过于偏执,不允许这样做
  4. 如果不允许类似WebEx的会话,那么你可以将诊断输出添加到日志文件中,然后他们可以发送给你,或者在电视上口头告诉你。这不是完成调试的最佳方式。
    • 4a。同样,如果类似WebEx的方法是不允许的,但如果客户有Excel专家和IT专家,你可以让他们在电视上和你一起做测试。同样不是最优的,但比3要好,因为你不是在和一个毫无头绪的客户交谈
  5. 最后也是最坏的情况是,你可能不得不前往客户的现场,在他们自己的电脑上进行最终测试(当然是在客户的监督下)

最新更新