过去几天我用FTPS服务器一直在苦苦挣扎,需要我试图通过.Net访问的'CCC'命令
我正在使用AlexFTPS库。我能够连接和取消AUTH TLS,我能够更改目录但是当我试图列出目录或下载文件时,服务器要求'CCC'命令。当我发送'CCC'命令时,我得到一个'200 CCC Context Enabled'回复,但是当我得到服务器超时异常时我无法发送任何其他内容。
我做了进一步的测试:
任何帮助都会非常感激...抱歉,我不是FTP流利的......
这是我的代码:
Using Client As New AlexPilotti.FTPS.Client.FTPSClient
AddHandler Client.LogCommand, Sub(sender As Object, args As AlexPilotti.FTPS.Common.LogCommandEventArgs)
Console.WriteLine(args.CommandText)
End Sub
AddHandler Client.LogServerReply, Sub(sender As Object, args As AlexPilotti.FTPS.Common.LogServerReplyEventArgs)
Console.WriteLine(args.ServerReply)
End Sub
Dim cred = New Net.NetworkCredential("login", "password")
Client.Connect("ftps.server.com", cred, AlexPilotti.FTPS.Client.ESSLSupportMode.CredentialsRequired)
Client.SendCustomCommand("SYST")
Client.SendCustomCommand("PBSZ 0")
Client.SendCustomCommand("PROT P")
Client.SendCustomCommand("FEAT")
Client.SendCustomCommand("PWD")
Client.SendCustomCommand("TYPE A")
Client.SendCustomCommand("PASV")
Client.SendCustomCommand("CCC")
Client.SendCustomCommand("LIST")
Console.ReadKey()
End Using
谢谢!
答案 0 :(得分:1)
CCC(“清除命令通道”)是一个特殊命令,它将连接从SSL(以AUTH TLS
开始)降级回到未加密的连接。因此仅仅将它声明为在已建立的控制连接上发送的自定义命令是不够的,它必须由FTPS库处理类似于AUTH TLS
,以便在命令完成后发生TLS降级。 / p>