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!
Comments
- Anonymous
April 29, 2019
6 years eh? Oh how I have counted the time between then and now, how I longed for an update to your FTP 7.5 Service Extensibility References article. My life is now complete.- Anonymous
June 18, 2019
Thanks, Carlton. Happy to be of service. :-D
- Anonymous
- Anonymous
May 10, 2019
Hi there,I'm pretty concerned about the state of IIS. The most exciting thing about any windows release for web developers is often the new IIS features. I was super surprised to find Microsoft has made any announcements about support for TLS 1.3.Nowadays it seems IIS is rarely updated, and yet surely IIS is core to so much of Microsoft's cloud offering. There's probably no other single feature that would boost the speed and security more of all of every website & azure cloud service running on windows than adding TLS 1.3 support.In fact, IIS.net site seems almost dead. Is Microsoft stopping developing IIS?- Anonymous
June 18, 2019
Hello AvazaT - IIS has not been abandoned, nor has IIS.NET, although I can see why you might think so.As far as IIS is concerned, the product team has been focused on protocol and standards compliance work, which are required for interoperability with the rest of the web. Two of the technologies that they have been researching are QUIC and TLS 1.3, although they currently do not have an ETA on a deliverable for either of those.For IIS.NET, there was a recent initiative here at Microsoft to consolidate a lot of our content into a single location, (which is http://docs.microsoft.com), instead of publishing content to dozens of disparate locations as we did in the past. As a result of this migration, most of the IIS content was moved to http://docs.microsoft.com/iis, which is where any future articles will be posted.The parent https://www.iis.net/ website is still the main portal for IIS content, and the https://forums.iis.net/ and https://blogs.iis.net/ subsites are still up and going. That being said, I will admit that the https://blogs.iis.net/ has seen a lot less activity recently, and that is because several of the predominant bloggers for IIS - myself included - are working on other projects these days, and the folks who are currently working on IIS aren't anywhere near as vocal as I was. ;-)
- Anonymous