上下文:我正在尝试制作一个应用程序,该应用程序将在需要时以TLS Explicit模式在FTP服务器上为用户存储应用程序配置文件。
服务器:适用于Windows 的FileZilla服务器
我还没能弄清楚VB中的加密和证书处理。我已经做了一个星期了,为了重新开始,我放弃了一切。
从头开始,以下是我的收获。如有任何帮助,我们将不胜感激!
谢谢!
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim UPReq As System.Net.FtpWebRequest = DirectCast(System.Net.WebRequest.Create("ftp://127.0.0.1/app/Test_File.txt"), System.Net.FtpWebRequest)
UPReq.Credentials = New System.Net.NetworkCredential("FTPusername", "FTPpassword")
'UPReq.ClientCertificates
UPReq.EnableSsl = True
UPReq.Method = System.Net.WebRequestMethods.Ftp.UploadFile
Dim file() As Byte = System.IO.File.ReadAllBytes("C:Users" + Environment.UserName + "DesktopTest_File.txt")
Dim Upload As System.IO.Stream = UPReq.GetRequestStream()
Upload.Write(file, 0, file.Length)
Upload.Close()
Upload.Dispose()
End Sub
对于将来阅读本文的人,请使用WinSCP!
他们的导游太棒了!
这是为所有当前/未来的程序员准备的!在Visual Studio中,转到Tools > Extension Manager...
,然后安装NuGet Package Manager
,重新启动Visual Studio。
下载并安装WinSCP,然后从这里下载WinSCP NuGet软件包。在Visual Studio中,右键单击Solution Explorer
中的项目,然后单击Manage NuGet Packages...
,再单击左下角的Settings
。添加源(下载WinSCP NuGet软件包的文件夹(,然后单击OK
。
接下来,您将看到WinSCP .NET assembly
出现,单击它并点击Install
。然后确保将Imports WinSCP
添加到项目代码的顶部。
之后,您可以对连接、上传和下载的功能进行编码。使用此处提供的示例
重要提示:使用WinSCP连接到FTPS服务器,然后单击Session
选项卡并单击Generate session URL/code
。在出现的新窗口中,选择.NET assembly code
选项卡。然后确保在Language
下拉菜单中选择了您的编程语言。就在那里!它将向您显示FTPS服务器的会话连接代码,只需将其复制并粘贴到Visual Studio中即可。
从那里开始,您将不得不修改他们的示例代码,并将其与WinSCP提供的会话连接代码相结合。
快乐编码!