如何强制VB6使用TSL加密进行POST?
我工作的公司有一个旧的VB6应用程序,他们想强制使用TSL,而不是SSL。我看了看密码,告诉他们应该没问题。代码使用HTTPS向客户端网站发送帖子。它没有指定要使用的加密 以下是相关代码:如何强制VB6使用TSL加密进行POST?,vb6,http-post,Vb6,Http Post,我工作的公司有一个旧的VB6应用程序,他们想强制使用TSL,而不是SSL。我看了看密码,告诉他们应该没问题。代码使用HTTPS向客户端网站发送帖子。它没有指定要使用的加密 以下是相关代码: Sub PostXML() Dim XMLHttpRequest As MSXML2.XMLHTTP Dim TempString As String Dim strURL As String Dim strArgs As String strURL = g
Sub PostXML()
Dim XMLHttpRequest As MSXML2.XMLHTTP
Dim TempString As String
Dim strURL As String
Dim strArgs As String
strURL = gPostWebServer & "/" & gPostFile
'ARB 1/8/2004 This is to trap if send fails and allow it to continue.
On Error GoTo errorHandler:
If Not XMLHttpRequest Is Nothing Then Set XMLHttpRequest = Nothing
Set XMLHttpRequest = New MSXML2.XMLHTTP
strArgs = "?Username=" & gPostUserName & "&Password=" & gPostPassword
XMLHttpRequest.Open "POST", strURL & strArgs, False
XMLHttpRequest.send dom_GlobalXMLObject
If XMLHttpRequest.Status >= 400 And XMLHttpRequest.Status <= 599 Then
TempString = "Client Website is not available. Order was not posted successfully ..."
flgOrderPostSuccess = False
strOrderPostError = TempString
Else
TempString = XMLHttpRequest.responseText
'Parse the response
Dim sValid As String
Dim sComments As String
Dim sTimeStamp As String
Dim oRoot As MSXML2.IXMLDOMElement
Dim lNodes As MSXML2.IXMLDOMNodeList
Dim oNodes As MSXML2.IXMLDOMElement
Dim lNodes1 As MSXML2.IXMLDOMNodeList
Dim oNodes1 As MSXML2.IXMLDOMElement
Dim lNodes2 As MSXML2.IXMLDOMNodeList
Dim oNodes2 As MSXML2.IXMLDOMElement
Call Set_Global_XML_Object
dom_GlobalXMLObject.loadXML (TempString)
dom_GlobalXMLObject.Save (Report_Folder & "\Response.xml")
'Get the root of the XML tree.
Set oRoot = dom_GlobalXMLObject.documentElement
If Not oRoot Is Nothing Then
Set lNodes = oRoot.childNodes
For Each oNodes In lNodes
Select Case oNodes.nodeName
Case "Acknowledgement"
Set lNodes1 = oNodes.childNodes
For Each oNodes1 In lNodes1
Select Case oNodes1.nodeName
Case "Received"
sTimeStamp = Trim(oNodes1.nodeTypedValue)
Case "Validated"
sValid = Trim(oNodes1.nodeTypedValue)
Case "Errors"
Set lNodes2 = oNodes1.childNodes
For Each oNodes2 In lNodes2
Select Case oNodes2.nodeName
Case "Description"
sComments = sComments & vbCrLf & Trim(oNodes2.nodeTypedValue)
End Select
Set oNodes2 = Nothing
Next
Set lNodes2 = Nothing
End Select
Set oNodes1 = Nothing
Next
Set lNodes1 = Nothing
End Select
Next
If UCase(sValid) = "YES" Then
TempString = sTimeStamp & " " & "Order uploaded successfully"
flgOrderPostSuccess = True
strOrderPostError = ""
Else
TempString = "Order had following problems:" & vbCrLf
TempString = TempString & sComments
strOrderPostError = TempString
End If
Else 'Non XML response
TempString = Replace(TempString, vbCr, vbCrLf)
TempString = "Order had following problems:" & vbCrLf & TempString
strOrderPostError = TempString
End If
End If
Call FillLogTextBox("-----------------------------------------------" & vbCr)
Call FillLogTextBox(TempString)
Call FillLogTextBox("-----------------------------------------------" & vbCr)
Set oRoot = Nothing
Set lNodes = Nothing
Set oNodes = Nothing
Set lNodes1 = Nothing
Set oNodes1 = Nothing
Set lNodes2 = Nothing
Set oNodes2 = Nothing
Set XMLHttpRequest = Nothing
Exit Sub
errorHandler:
TempString = Err.DESCRIPTION
If InStr(1, TempString, "Method") > 0 Or InStr(1, Err.DESCRIPTION, "failed") > 0 Then
TempString = "Client Website was not found. Order was not posted successfully..."
Call FillLogTextBox(TempString)
Call FillLogTextBox("-----------------------------------------------" & vbCr)
Exit Sub
End If
End Sub
Sub-PostXML()
Dim XMLHttpRequest作为MSXML2.XMLHTTP
将字符串设置为字符串
暗弦
作为字符串的变暗strArgs
strURL=gPostWebServer&“/”&gPostFile
'ARB 1/8/2004这是一个陷阱,如果发送失败,并允许它继续。
错误转到错误处理程序时:
如果XMLHttpRequest不是Nothing,则设置XMLHttpRequest=Nothing
设置XMLHttpRequest=New MSXML2.XMLHTTP
strArgs=“?Username=“&gPostUserName&”&Password=“&gPostPassword
XMLHttpRequest.Open“POST”,strURL和strArgs,False
XMLHttpRequest.send dom_GlobalXMLObject
如果XMLHttpRequest.Status>=400且XMLHttpRequest.Status使用SChannel无法在应用程序级别控制可用/使用的协议和密码,则必须在系统级别的Win2003框中配置SChannel协议/密码。以下是关于这个主题的知识库:
要禁用入站和出站连接的SSLv3,请在注册表中合并类似的内容(并重新启动):
同时确保SSLv2也被核化
您可能更喜欢使用--一个很好的实用程序,它使SSL/TLS协议/密码注册表配置变得微不足道。我们还知道什么?例如,托管操作系统?Windows XP停止获取SChannel修补程序和加密更新,虽然Win Server 2003名义上受支持,但它可能处于同一条船上。Vista/7和Server2008最近也进行了一些混合的SChannel加密更新,不过预计会有进一步的更新来纠正这种混合。所以这可能根本不是VB6的问题。好问题,Bob77。我们将Windows Server 2003用于我通常维护的应用程序。我偶尔维护的java应用程序使用Windows 2003、Apache、Websphere的组合,我忘了还有什么。除了包含VB6应用程序的部分之外,所有这些都可以正常工作。您从VB6应用程序中实际得到了哪些错误?我注意到,errorHandler
code丢弃了VB6错误编号和描述,用普通的硬编码错误消息替换。您可能会丢失一些诊断信息。请创建一个Java代理,VB6可以向其发布,然后该代理将发布到客户端端点??谢谢!这听起来比MarkJ的贴子页面想法还要好。我会和电视台的人谈谈,让他们试一试。这很有效,但有一点需要注意。我们禁用了SSL,并启用了TSL。它不起作用了。然后,管理员进入IE选项选项卡,点击启用TSL,保存,关闭IE,它开始工作。谢谢,@wqw
Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\SSL 3.0]
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\SSL 3.0\Client]
"DisabledByDefault"=dword:00000001
"Enabled"=dword:00000000
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\SSL 3.0\Server]
"Enabled"=dword:00000000
"DisabledByDefault"=dword:00000001