SecureFtpServer ActiveX Control
Use the SecureFtpServer control to create FTP server applications which can transfer files using SSL, TLS, or PCT. Features include:
- Use SSL 2.0, SSL 3.0, PCT, TLS or unencrypted FTP communications.
- Customize certificate acceptance or rejection.
- Client authentication fully supported.
- Uniquely capable of SSL over FTP through a Firewall using Dart's proprietary FirewallReady functionality (requires PowerTCP products on both sides of the connection).
- The SecureFtpServer control uses an internal Daemon object and dynamically creates internal TCP objects as each passive connection is automatically accepted. Use this TCP object to send and receive data to that individual connection.
- When a request is received, a corresponding event is raised. Write your own custom handling code in the event handler.
- Add authentication and customized user directories within the Login event.
- Disallow changing directories within the ChangeDirectoryUp and ChangeWorkingDirectory events to those who do not have proper permissions.
- Disallow directory creation/deletion within the MakeDirectory and RemoveDirectory methods to those who do not have proper permissions
- Disallow file upload/download within the Retrieve and Store event to those who do not have proper permissions.
- Visual Studio .NET (.NET Framework)
- Visual Basic (VB)
- Visual C++ (VC++)
- C++ Builder
- Office 97/2000
|Authentication||Specifies the security protocol and authentication type used.|
|Certificate||Certificate Object to use when authenticating to the remote host.|
|ClientAuthentication||Applies to server operation only.|
|Count||Number of nonsecure TCP connections currently open.|
|LocalAddress||Returns the address in use while the Daemon is active and an empty string when the Daemon socket is closed.|
|LocalPort||Returns the port number in use while the Daemon is active and 0 when the Daemon is closed|
|LogDirectory||Directory for daily log files.|
|MaxIdleTime||Maximum time in minutes a session can be idle before it terminates.|
|Protocol||Specifies the security protocol used.|
|QuitMessage||Message sent to the client in response to a QUIT command (when the user logs out.|
|RequestAccountInfo||Controls whether the ACCT command is requested.|
|RestartAllowed||Indicates whether users can restart file transfers.|
|SecretKey||Sets the secret key used in password encryption.|
|Sessions||Collection of active Session Objects.|
|Status||Text description of the server status. This is the message returned to the client in response to a STAT command.|
|SystemName||System name and type. This is the message returned to the client in response to a SYST command.|
|WelcomeMessage||Message returned to the client when the client initially connects.|
|About||Show the About Box.|
|ClearCertificate||Clears the Certificate object contained in the Certificate property.|
|Pause||Stop the server from listening and accepting new connections, while allowing established connections and sessions to persist.|
|Start||Start processing FTP requests.|
|Stop||Stop the server from accepting new connections and immediately close existing client connections.|
|Append||Fires when the client attempts to append to a file (by sending an APPE command).|
|Authenticate||Fires when the remote host has sent a certificate to be authenticated.|
|ChangeDirectoryUp||Fires when the client sends a CDUP command.|
|ChangeWorkingDirectory||Fires when the client sends a CWD command.|
|Command||Fires when the client sends a custom command.|
|Delete||Fires when the client sends a DELE command.|
|Error||Fires whenever an error condition occurs.|
|Help||Fires when the client sends the HELP command.|
|List||Fires when the client sends the HELP command.|
|Login||Fires when the client attempts to log into the server.|
|Logout||Fires when the client sends the QUIT command.|
|MakeDirectory||Fires when the client sends a MKD command.|
|NameList||Fires when the client sends a NLST command.|
|RemoveDirectory||Fires when the client sends a RMD command.|
|Rename||Fires when the client attempts to rename a file.|
|Retrieve||Fires when the client attempts to retrieve a file.|
|SessionEnd||Fires just before the session is terminated.|
|SessionInit||Fires when the client first connects to the server.|
|Site||Fires when the client sends the SITE command.|
|Status||Fires when the client sends the STAT command.|
|Store||Fires when the client attempts to store a file.|
|StructureMount||Fires when the client sends the SMNT command.|
How easy is the SecureFtpServer control to use? This example demonstrates creating a fully-functional secure FTP server.
Private Sub StartServer()
' Create a new CertificateStore object. This helps to select a cert.
Dim Store As New CertificateStore
'Get the certificates in "MY" certificate store located in the
'current user registry key.
Store.Name = "MY"
Store.Location = locationLocalMachine
' Check to see if any certificates were found in this store.
If Store.Certificates.Count > 0 Then
' Yep. Just use the first one.
SecureFtp1.Certificate = Store.Certificates.Item(1)
' Uh oh. No certificate found.
MsgBox("Error. No certificate found. Cannot use security.")
' Start the server listening on port 21 with the FTP root C:\FtpRoot