Updated IIS FTP Service Extensibility References
It's hard to believe that it has already been six years since I wrote my Extensibility Updates in the FTP 8.0 Service blog, and it has been nine years since I wrote my FTP 7.5 Service Extensibility References blog. (Wow… where has all that time gone?) In any event, those blogs introduced several of the APIs that were added to the IIS FTP service which allow developers to provide custom pre-processing and post-processing functionality. (For example, automatically unzipping a compressed file after it has been uploaded, or implementing anti-leeching functionality.)
That being said, for some reason the managed-code APIs that were introduced in later versions of IIS were never fully documented, but we have rectified that problem. With that in mind, the links listed below will take you to the appropriate article for each API.
- FTP Managed-Code Extensibility API Reference
Describes the managed-code extensibility APIs of the service for IIS 7.5 and later.- FTP Managed-Code Extensibility Classes
Describes the managed-code classes for the FTP service.- BaseProvider
Defines the base provider for FTP extensibility classes.- Dispose
Releases the unmanaged resources used by the class, and optionally releases the managed resources. - Initialize
Retrieves configuration settings for the class.
- Dispose
- FtpLogEntry
Contains logging information for use with the IFtpLogProvider interface. - FtpPreprocessParameters
Contains session information for use with the IFtpPreprocessProvider interface. - FtpPostprocessParameters
Contains session information for use with the IFtpPostprocessProvider interface.
- BaseProvider
- FTP Managed-Code Extensibility Enumerations
Describes the managed-code enumerations for the FTP service.- FtpAccess
Defines the authorization levels for use with the IFtpAuthorizationProvider interface. - FtpProcessStatus
Defines the process statuses for use with the IFtpPostprocessProvider and IFtpPreprocessProvider interfaces.
- FtpAccess
- FTP Managed-Code Extensibility Interfaces
Describes the managed-code interfaces for the FTP service.- IFtpAuthenticationProvider
Provides an interface for authenticating an FTP user.- AuthenticateUser
Checks if a user name and password are valid
- AuthenticateUser
- IFtpAuthorizationProvider
Provides an interface for authorizing an FTP user.- GetUserAccessPermission
Determines the access level for a user.
- GetUserAccessPermission
- IFtpHomeDirectoryProvider
Provides an interface for retrieving the path to a user's FTP home directory.- GetUserHomeDirectoryData
Returns the physical path of the home directory for a user.
- GetUserHomeDirectoryData
- IFtpLogProvider
Provides an interface for logging FTP activity.- Log
Performs logging activity for the IFtpLogProvider interface.
- Log
- IFtpPostprocessProvider
Provides an interface for implementing custom functionality after an FTP command has completed.- HandlePostprocess
Implements custom functionality after an FTP command has completed.
- HandlePostprocess
- IFtpPreprocessProvider
Provides an interface for implementing custom functionality before an FTP command has completed.- HandlePreprocess
Implements custom functionality before an FTP command is processed
- HandlePreprocess
- IFtpRoleProvider
Provides an interface for authorization and role checks.- IsUserInRole
Checks if a user is a member of a specific role.
- IsUserInRole
- IFtpAuthenticationProvider
- FTP Managed-Code Extensibility Classes
And as always, there are a dozen or so articles in the Developing for FTP section of the official IIS documentation that will walk you through the process of creating your own custom FTP functionality for IIS.
I hope this helps!