예제 #1
0
        public void TestUserReportedError2(string host, int port, FtpsSecurityProtocol protocol,
                                           string user, string pwd, string server)
        {
            FtpsClient ftp = new FtpsClient("127.0.0.1", port, protocol);

            ftp.AlwaysAcceptServerCertificate = true;
            ftp.Open("test", "test");
            ftp.GetFile("luna.h", "luna1-2.h", FileAction.Create);
            ftp.Close();
        }
예제 #2
0
        public void TestOpen(string host, int port, FtpsSecurityProtocol protocol,
                             string user, string pwd, string server)
        {
            FtpsClient c = new FtpsClient(host, port, protocol);

            c.AlwaysAcceptServerCertificate = true;
            c.Open(user, pwd);
            Assert.IsTrue(c.IsConnected);
            c.Close();
        }
예제 #3
0
        public void TestUserReportedError2()
        {
            // clean up anything that may have been left over from previous tests
            FtpsClient ftp1 = new FtpsClient(FTP_HOST, FTP_STD_PORT, FtpsSecurityProtocol.None);

            ftp1.NetworkProtocol = NETWORK_PROTOCOL;
            ftp1.Open(FTP_USER, FTP_PASS);

            try
            {
                ftp1.ChangeDirectory("test dir");
            }
            catch
            {
            }
            try
            {
                ftp1.DeleteFile("testfile.txt");
            }
            catch
            {
            }

            try
            {
                ftp1.ChangeDirectory("\\");
            }
            catch
            {
            }

            try
            {
                ftp1.DeleteDirectory("test dir");
            }
            catch
            {
            }


            FtpsClient ftp = new FtpsClient(FTP_HOST, FTP_STD_PORT, FtpsSecurityProtocol.Tls12Explicit);

            ftp.NetworkProtocol = NETWORK_PROTOCOL;
            ftp.AlwaysAcceptServerCertificate = true;
            ftp.Open(FTP_USER, FTP_PASS);
            ftp.MakeDirectory("test dir");
            ftp.ChangeDirectory("test dir");
            ftp.PutFile(GetMemoryStreamRandom(100), "testfile.txt", FileAction.Create);
            FtpsItemCollection col = ftp.GetDirList();

            ftp.Close();

            Assert.IsTrue(col.Count == 1);
        }
예제 #4
0
        public void TestUserReportedError1()
        {
            FtpsClient ftp = new FtpsClient(FTP_HOST, FTP_STD_PORT, FtpsSecurityProtocol.Tls12Explicit);

            ftp.NetworkProtocol = NETWORK_PROTOCOL;
            ftp.AlwaysAcceptServerCertificate = true;
            ftp.Open(FTP_USER, FTP_PASS);
            ftp.PutFile(GetMemoryStreamRandom(100), "testfile.txt", FileAction.Create);
            MemoryStream fout = new MemoryStream();

            ftp.GetFile("testfile.txt", fout, false);
            ftp.DeleteFile("testfile.txt");
            ftp.Close();
        }
예제 #5
0
 public void UploadPackage(string packagePath, string packageVersion)
 {
     _packageFtpsClient = GetNewFtpsClient();
     _packageFtpsClient.TransferProgress      += TransferProgressChangedEventHandler;
     _packageFtpsClient.PutFileAsyncCompleted += UploadPackageFinished;
     _packageFtpsClient.Open(Username, Password.ConvertToInsecureString());
     _packageFtpsClient.ChangeDirectoryMultiPath(Directory);
     _packageFtpsClient.MakeDirectory(packageVersion);
     _packageFtpsClient.ChangeDirectory(packageVersion);
     _packageFtpsClient.PutFileAsync(packagePath, FileAction.Create);
     _uploadPackageResetEvent.WaitOne();
     _packageFtpsClient.Close();
     _uploadPackageResetEvent.Reset();
 }
예제 #6
0
        /// <summary>
        ///     Connects to a FTP server trying every methods
        /// </summary>
        private void ConnectFtp(FtpsClient ftp, string userName, string passWord, string host, int port)
        {
            NetworkCredential credential = null;

            if (!string.IsNullOrEmpty(userName))
            {
                credential = new NetworkCredential(userName, passWord ?? "");
            }

            var modes = new List <EsslSupportMode>();

            typeof(EsslSupportMode).ForEach <EsslSupportMode>((s, l) => {
                modes.Add((EsslSupportMode)l);
            });

            var sb = new StringBuilder();

            ftp.DataConnectionMode = EDataConnectionMode.Passive;
            while (!ftp.Connected && ftp.DataConnectionMode == EDataConnectionMode.Passive)
            {
                foreach (var mode in modes.OrderByDescending(mode => mode))
                {
                    try {
                        var curPort = port > 0 ? port : (mode & EsslSupportMode.Implicit) == EsslSupportMode.Implicit ? 990 : 21;
                        ftp.Connect(host, curPort, credential, mode, 1800);
                        ftp.Connected = true;
                        if (!ftp.Connected)
                        {
                            ftp.Close();
                        }
                        break;
                    } catch (Exception e) {
                        sb.AppendLine($"{mode} >> {e.Message}");
                    }
                }
                ftp.DataConnectionMode = EDataConnectionMode.Active;
            }

            // failed?
            if (!ftp.Connected)
            {
                throw new ArchiverException($"Failed to connect to a FTP server with : Username : {userName ?? "none"}, Password : {passWord ?? "none"}, Host : {host}, Port : {(port == 0 ? 21 : port)}", new Exception(sb.ToString()));
            }
        }
예제 #7
0
        public void TestUserReportedError2()
        {
            FtpsClient ftp = new FtpsClient(FTP_HOST, FTP_STD_PORT, FtpsSecurityProtocol.Tls1Explicit);

            ftp.NetworkProtocol = NETWORK_PROTOCOL;
            ftp.AlwaysAcceptServerCertificate = true;
            ftp.Open(FTP_USER, FTP_PASS);
            ftp.MakeDirectory("test dir");
            ftp.ChangeDirectory("test dir");
            ftp.PutFile(GetMemoryStreamRandom(100), "testfile.txt", FileAction.Create);
            FtpsItemCollection col = ftp.GetDirList();

            ftp.DeleteFile("testfile.txt");
            ftp.ChangeDirectory("\\");
            ftp.DeleteDirectory("test dir");
            ftp.Close();

            Assert.IsTrue(col.Count == 1);
        }