Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/oop/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何强制VB6使用TSL加密进行POST?_Vb6_Http Post - Fatal编程技术网

如何强制VB6使用TSL加密进行POST?

如何强制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

我工作的公司有一个旧的VB6应用程序,他们想强制使用TSL,而不是SSL。我看了看密码,告诉他们应该没问题。代码使用HTTPS向客户端网站发送帖子。它没有指定要使用的加密

以下是相关代码:

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