VBA - Redmine 上的 WinHTTP 身份验证失败



我几天来一直在研究这个问题,但我无法找到解决方案。我想通过VBA使用WinHttp身份验证登录到我们的Redmine以获取当前问题.csv我的Excel电子表格文件。我已经在 Stackoverflow 上找到了这个有用的问题并调整了代码(不理解为什么 WinHTTP 不对某些 HTTPS 资源进行身份验证(,但它也不适用于此。我总是得到 LoginPage html 内容作为 ResponseBody。

这是准则的特定部分:

Set RegX_AuthToken = CreateObject("VBScript.RegExp")
'Below Pattern w/o double-quotes encoded:(?:Input name="authenticity_token" value=")(.*)(?:")
RegX_AuthToken.Pattern = "(?:input type=" & Chr(34) & "hidden" & Chr(34) & " name=" & Chr(34) & "authenticity_token" & Chr(34) & " value=" & Chr(34) & ")(.*)(?:" & Chr(34) & ")"
RegX_AuthToken.IgnoreCase = True
RegX_AuthToken.Global = True
RegX_AuthToken.MultiLine = True
TargetUrl = myURL
Set httpreq = CreateObject("WinHttp.WinHttpRequest.5.1")
httpreq.Open "GET", TargetUrl, False
httpreq.Send
Set token_Match = RegX_AuthToken.Execute(httpreq.ResponseText)
Authtoken = token_Match(0).SubMatches(0)
PostData = "authenticity_token=" & Authtoken & "&back_url=https://tickets.gbo-datacomp.de/" & "&username=" & "XXX" & "&password=" & "XXX" & "&login=Login »"
httpreq.Open "POST", TargetUrl, False
httpreq.SetRequestHeader "Content-Type", "application/x-www-form-urlencoded"
httpreq.Send (PostData)
TargetUrl = myUrl&"issues.csv"
httpreq.Open "GET", TargetUrl, False
httpreq.Send
oResp = httpreq.ResponseBody

如果有人能指出我的错误,那就太好了。

提前感谢您的建议!

我遇到了同样的问题,在我的公司,我的认证是最新的,所以你必须通过使用:

HTTPReq.Option(4) = &H3300

它对我有用!

相关内容

最新更新