Xceed .NET Libraries Documentation
In This Topic
    Changes since version 3.7
    In This Topic

    Interface changes

    • Added CCC (clear command channel) to FtpConnection (ClearCommandChannel property) FtpClient (ClearCommandChannel method). Clears the command channel after login to facilitate firewall NAT when connecting using a secure data channel.

    • Added UseRemoteAddress property to FtpConnection and FtpClient to correct issues when a server behind a firewall returns an internal address via PASV command to an external client.

    • The CertificateStore class has been removed. Developers now need to implement their own certificate store using the X509Store class.

      AuthenticationMethod enumeration has been modified to match SslProtocols.
    • DataChannelProtection enumeration: The Integrity and Confidential values have been obsoleted.

    • VerificationFlags enumeration has been modified to match X509VerificationFlags. The following values have been obsoleted: IgnoreAllTimeChecks, IgnoreAllRevUnknown, AllowTestRoot, and TrustTestRoot.

    • VerificationStatus enumeration has been modified to match X509VerificationFlags. The following values have been obsoleted: InvalidRole, ParentRevoked, UntrustedTestRoot, WrongUsage, and OtherError. (Note: As of build 4.1.9616.13400, this enumeration has the Flags attribute to match the X509ChainStatusFlags enum. This is a breaking change.)

    • ClientCertificate inherits from X509Certificate2.

    Behavior changes that may affect your projects

    • The PBSZ and PROT P commands are now always sent when connecting to a server using implicit SSL/TLS to ensure the data channel is always encrypted.

    • FtpClient is used by FtpConnection instead of AsyncFtpClient. When using FtpConnection in a UI application, use FtpConnection.SynchronizingObject and call Application.DoEvents in an event.

    • AsyncFtpClient's methods now call the corresponding FtpClient (synchronous) methods on a background thread. It is therefore recommended that AsyncFtpClient be considered obsolete: use FtpClient and assign a SynchronizingObject to its SynchronizingObject property instead. Using FtpClient instead of AsyncFtpClient also has the advantage of producing code that is easier to debug and read.

    Other minor changes and bug fixes

    • FtpUnixListingParser no longer throws an exception ("Year, Month, and Day parameters describe an un-representable DateTime") for some files. Some servers don't send the Year part of the file creation date and this usually means this year. But some servers don't send the year for files created within 6 months and sometimes up to a year. In these situations, we must use last year instead of the current year. The most common exception is February 29 which can't be cast to 2009 Feb 29.