<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://blogs.iis.net/utility/FeedStylesheets/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:cs="http://blogs.iis.net/"><channel><title>The Official Microsoft IIS Site</title><link>http://blogs.iis.net/</link><description>The platform that enables you to build rich, interactive communities</description><dc:language>en-US</dc:language><generator>CommunityServer 2007 SP1 (Debug Build: 20510.895)</generator><item><title>Adding Custom FTP Providers with the IIS Configuration Editor - Part 2</title><link>http://blogs.iis.net/robert_mcmurray/archive/2013/05/02/adding-custom-ftp-providers-with-the-iis-configuration-editor-part-2.aspx</link><pubDate>Fri, 03 May 2013 01:31:00 GMT</pubDate><guid isPermaLink="false">50bcf3b4-f6fe-4638-adff-0c150e922e99:5068932</guid><dc:creator>robmcm</dc:creator><slash:comments>1</slash:comments><description>&lt;P&gt;In &lt;A href="http://blogs.iis.net/robert_mcmurray/archive/2013/03/31/adding-custom-ftp-providers-with-the-iis-configuration-editor-part-1.aspx" target=_blank mce_href="http://blogs.iis.net/robert_mcmurray/archive/2013/03/31/adding-custom-ftp-providers-with-the-iis-configuration-editor-part-1.aspx"&gt;Part 1 of this blog series&lt;/A&gt; about adding custom FTP providers with the &lt;STRONG style="FONT-WEIGHT: bold"&gt;IIS Configuration Editor&lt;/STRONG&gt;, I showed you how to add a custom FTP provider with a custom setting for the provider that is stored in your IIS configuration settings. For my examples, I showed how to do this by using both the AppCmd.exe application from a command line and by using the &lt;STRONG style="FONT-WEIGHT: bold"&gt;IIS Configuration Editor&lt;/STRONG&gt;. In part 2 of this blog series, I will show you how to use the IIS Configuration Editor to add custom FTP providers to your FTP sites.&lt;/P&gt;
&lt;P&gt;As a brief review from Part 1, the following XML excerpt illustrates what the provider's settings should resemble when added to your IIS settings:&lt;/P&gt;
&lt;P style="COLOR: black; MARGIN-LEFT: 20px; BACKGROUND-COLOR: #ffffff"&gt;&lt;CODE&gt;&lt;SPAN style="COLOR: #0000ff"&gt;&amp;lt;&lt;/SPAN&gt;&lt;SPAN style="COLOR: #800000"&gt;system.ftpServer&lt;/SPAN&gt;&lt;SPAN style="COLOR: #0000ff"&gt;&amp;gt;&lt;/SPAN&gt;&lt;BR&gt;&amp;nbsp; &lt;SPAN style="COLOR: #0000ff"&gt;&amp;lt;&lt;/SPAN&gt;&lt;SPAN style="COLOR: #800000"&gt;providerDefinitions&lt;/SPAN&gt;&lt;SPAN style="COLOR: #0000ff"&gt;&amp;gt;&lt;/SPAN&gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN style="COLOR: #0000ff"&gt;&amp;lt;&lt;/SPAN&gt;&lt;SPAN style="COLOR: #800000"&gt;add&lt;/SPAN&gt; &lt;SPAN style="COLOR: #ff0000"&gt;name&lt;/SPAN&gt;&lt;SPAN style="COLOR: #0000ff"&gt;="FtpXmlAuthorization"&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&amp;nbsp;&lt;SPAN style="COLOR: #ff0000"&gt;type&lt;/SPAN&gt;&lt;SPAN style="COLOR: #0000ff"&gt;="FtpXmlAuthorization, FtpXmlAuthorization, version=1.0.0.0, Culture=neutral, PublicKeyToken=426f62526f636b73"&lt;/SPAN&gt; &lt;SPAN style="COLOR: #0000ff"&gt;/&amp;gt;&lt;/SPAN&gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN style="COLOR: #0000ff"&gt;&amp;lt;&lt;/SPAN&gt;&lt;SPAN style="COLOR: #800000"&gt;activation&lt;/SPAN&gt;&lt;SPAN style="COLOR: #0000ff"&gt;&amp;gt;&lt;/SPAN&gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN style="COLOR: #0000ff"&gt;&amp;lt;&lt;/SPAN&gt;&lt;SPAN style="COLOR: #800000"&gt;providerData&lt;/SPAN&gt; &lt;SPAN style="COLOR: #ff0000"&gt;name&lt;/SPAN&gt;&lt;SPAN style="COLOR: #0000ff"&gt;="FtpXmlAuthorization"&amp;gt;&lt;/SPAN&gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN style="COLOR: #0000ff"&gt;&amp;lt;&lt;/SPAN&gt;&lt;SPAN style="COLOR: #800000"&gt;add&lt;/SPAN&gt; &lt;SPAN style="COLOR: #ff0000"&gt;key&lt;/SPAN&gt;&lt;SPAN style="COLOR: #0000ff"&gt;="xmlFileName"&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&amp;nbsp;&lt;SPAN style="COLOR: #ff0000"&gt;value&lt;/SPAN&gt;&lt;SPAN style="COLOR: #0000ff"&gt;="C:\inetpub\FtpUsers\Users.xml"&lt;/SPAN&gt; &lt;SPAN style="COLOR: #0000ff"&gt;/&amp;gt;&lt;/SPAN&gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN style="COLOR: #0000ff"&gt;&amp;lt;/&lt;/SPAN&gt;&lt;SPAN style="COLOR: #800000"&gt;providerData&lt;/SPAN&gt;&lt;SPAN style="COLOR: #0000ff"&gt;&amp;gt;&lt;/SPAN&gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN style="COLOR: #0000ff"&gt;&amp;lt;/&lt;/SPAN&gt;&lt;SPAN style="COLOR: #800000"&gt;activation&lt;/SPAN&gt;&lt;SPAN style="COLOR: #0000ff"&gt;&amp;gt;&lt;/SPAN&gt;&lt;BR&gt;&amp;nbsp; &lt;SPAN style="COLOR: #0000ff"&gt;&amp;lt;/&lt;/SPAN&gt;&lt;SPAN style="COLOR: #800000"&gt;providerDefinitions&lt;/SPAN&gt;&lt;SPAN style="COLOR: #0000ff"&gt;&amp;gt;&lt;/SPAN&gt;&lt;BR&gt;&lt;SPAN style="COLOR: #0000ff"&gt;&amp;lt;/&lt;/SPAN&gt;&lt;SPAN style="COLOR: #800000"&gt;system.ftpServer&lt;/SPAN&gt;&lt;SPAN style="COLOR: #0000ff"&gt;&amp;gt;&lt;/SPAN&gt;&lt;/CODE&gt;&lt;/P&gt;
&lt;P&gt;The above example shows the settings that are added globally to register an FTP provider. Note that this example only contains the settings for my custom provider; you would normally see the settings for the &lt;EM style="FONT-STYLE: italic"&gt;IisManagerAuth&lt;/EM&gt; and &lt;EM style="FONT-STYLE: italic"&gt;AspNetAuth&lt;/EM&gt; providers that ship with the FTP service in the &lt;STRONG style="FONT-WEIGHT: bold"&gt;providerDefinitions&lt;/STRONG&gt; collection.&lt;/P&gt;
&lt;P&gt;To actually use a provider for an FTP site, you would need to add the provider to the settings for the FTP site in your IIS settings. So for part 2 of this blog series, we will focus on how to add a custom provider to an FTP site by using the IIS Configuration Editor.&lt;/P&gt;
&lt;P&gt;Having said all of that, the rest of this blog is broken down into the following sections:&lt;/P&gt;
&lt;UL&gt;
&lt;LI style="LINE-HEIGHT: 150%"&gt;&lt;A href="http://blogs.iis.net/controlpanel/blogs/posteditor.aspx?SelectedNavItem=Posts&amp;amp;sectionid=1091&amp;amp;postid=5068932#01" mce_href="http://blogs.iis.net/controlpanel/blogs/posteditor.aspx?SelectedNavItem=Posts&amp;amp;sectionid=1091&amp;amp;postid=5068932#01"&gt;Step 1 - Looking at the configuration settings for custom FTP providers&lt;/A&gt;&lt;/LI&gt;
&lt;LI style="LINE-HEIGHT: 150%"&gt;&lt;A href="http://blogs.iis.net/controlpanel/blogs/posteditor.aspx?SelectedNavItem=Posts&amp;amp;sectionid=1091&amp;amp;postid=5068932#02" mce_href="http://blogs.iis.net/controlpanel/blogs/posteditor.aspx?SelectedNavItem=Posts&amp;amp;sectionid=1091&amp;amp;postid=5068932#02"&gt;Step 2 - Navigate to an FTP Site in the Configuration Editor&lt;/A&gt;&lt;/LI&gt;
&lt;LI style="LINE-HEIGHT: 150%"&gt;&lt;A href="http://blogs.iis.net/controlpanel/blogs/posteditor.aspx?SelectedNavItem=Posts&amp;amp;sectionid=1091&amp;amp;postid=5068932#03" mce_href="http://blogs.iis.net/controlpanel/blogs/posteditor.aspx?SelectedNavItem=Posts&amp;amp;sectionid=1091&amp;amp;postid=5068932#03"&gt;Step 3 - Add custom FTP providers to an FTP site&lt;/A&gt; 
&lt;UL&gt;
&lt;LI style="LINE-HEIGHT: 150%"&gt;&lt;A href="http://blogs.iis.net/controlpanel/blogs/posteditor.aspx?SelectedNavItem=Posts&amp;amp;sectionid=1091&amp;amp;postid=5068932#03a" mce_href="http://blogs.iis.net/controlpanel/blogs/posteditor.aspx?SelectedNavItem=Posts&amp;amp;sectionid=1091&amp;amp;postid=5068932#03a"&gt;Add a custom FTP provider to an FTP site that is not used for authentication&lt;/A&gt;&lt;/LI&gt;
&lt;LI style="LINE-HEIGHT: 150%"&gt;&lt;A href="http://blogs.iis.net/controlpanel/blogs/posteditor.aspx?SelectedNavItem=Posts&amp;amp;sectionid=1091&amp;amp;postid=5068932#03b" mce_href="http://blogs.iis.net/controlpanel/blogs/posteditor.aspx?SelectedNavItem=Posts&amp;amp;sectionid=1091&amp;amp;postid=5068932#03b"&gt;Add a custom FTP authentication provider to an FTP site&lt;/A&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;/LI&gt;
&lt;LI style="LINE-HEIGHT: 150%"&gt;&lt;A href="http://blogs.iis.net/controlpanel/blogs/posteditor.aspx?SelectedNavItem=Posts&amp;amp;sectionid=1091&amp;amp;postid=5068932#04" mce_href="http://blogs.iis.net/controlpanel/blogs/posteditor.aspx?SelectedNavItem=Posts&amp;amp;sectionid=1091&amp;amp;postid=5068932#04"&gt;Summary and Parting Thoughts&lt;/A&gt; 
&lt;UL&gt;
&lt;LI style="LINE-HEIGHT: 150%"&gt;&lt;A href="http://blogs.iis.net/controlpanel/blogs/posteditor.aspx?SelectedNavItem=Posts&amp;amp;sectionid=1091&amp;amp;postid=5068932#04a" mce_href="http://blogs.iis.net/controlpanel/blogs/posteditor.aspx?SelectedNavItem=Posts&amp;amp;sectionid=1091&amp;amp;postid=5068932#04a"&gt;Disabling Custom User Isolation&lt;/A&gt;&lt;/LI&gt;
&lt;LI style="LINE-HEIGHT: 150%"&gt;&lt;A href="http://blogs.iis.net/controlpanel/blogs/posteditor.aspx?SelectedNavItem=Posts&amp;amp;sectionid=1091&amp;amp;postid=5068932#04b" mce_href="http://blogs.iis.net/controlpanel/blogs/posteditor.aspx?SelectedNavItem=Posts&amp;amp;sectionid=1091&amp;amp;postid=5068932#04b"&gt;Additional Information&lt;/A&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;Before continuing, I should reiterate that custom FTP providers fall into two categories: providers that are used for authentication and providers that are used for everything else. This distinction is important, because the settings are stored in different sections of your IIS settings. With that in mind, let's take a look at the settings for an example FTP site.&lt;/P&gt;
&lt;H3 id=01&gt;Step 1 - Looking at the configuration settings for custom FTP providers&lt;/H3&gt;
&lt;P&gt;The following example shows an FTP site with several custom FTP providers added:&lt;/P&gt;
&lt;P style="COLOR: black; MARGIN-LEFT: 20px; BACKGROUND-COLOR: #ffffff"&gt;&lt;CODE&gt;&lt;SPAN style="COLOR: #0000ff"&gt;&amp;lt;&lt;/SPAN&gt;&lt;SPAN style="COLOR: #800000"&gt;site&lt;/SPAN&gt; &lt;SPAN style="COLOR: #ff0000"&gt;name&lt;/SPAN&gt;&lt;SPAN style="COLOR: #0000ff"&gt;="ftp.contoso.com"&lt;/SPAN&gt; &lt;SPAN style="COLOR: #ff0000"&gt;id&lt;/SPAN&gt;&lt;SPAN style="COLOR: #0000ff"&gt;="2"&amp;gt;&lt;/SPAN&gt;&lt;BR&gt;&amp;nbsp; &lt;SPAN style="COLOR: #0000ff"&gt;&amp;lt;&lt;/SPAN&gt;&lt;SPAN style="COLOR: #800000"&gt;application&lt;/SPAN&gt; &lt;SPAN style="COLOR: #ff0000"&gt;path&lt;/SPAN&gt;&lt;SPAN style="COLOR: #0000ff"&gt;="/"&amp;gt;&lt;/SPAN&gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN style="COLOR: #0000ff"&gt;&amp;lt;&lt;/SPAN&gt;&lt;SPAN style="COLOR: #800000"&gt;virtualDirectory&lt;/SPAN&gt; &lt;SPAN style="COLOR: #ff0000"&gt;path&lt;/SPAN&gt;&lt;SPAN style="COLOR: #0000ff"&gt;="/"&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&amp;nbsp;&lt;SPAN style="COLOR: #ff0000"&gt;physicalPath&lt;/SPAN&gt;&lt;SPAN style="COLOR: #0000ff"&gt;="c:\inetpub\www.contoso.com\wwwroot"&lt;/SPAN&gt; &lt;SPAN style="COLOR: #0000ff"&gt;/&amp;gt;&lt;/SPAN&gt;&lt;BR&gt;&amp;nbsp; &lt;SPAN style="COLOR: #0000ff"&gt;&amp;lt;/&lt;/SPAN&gt;&lt;SPAN style="COLOR: #800000"&gt;application&lt;/SPAN&gt;&lt;SPAN style="COLOR: #0000ff"&gt;&amp;gt;&lt;/SPAN&gt;&lt;BR&gt;&amp;nbsp; &lt;SPAN style="COLOR: #0000ff"&gt;&amp;lt;&lt;/SPAN&gt;&lt;SPAN style="COLOR: #800000"&gt;bindings&lt;/SPAN&gt;&lt;SPAN style="COLOR: #0000ff"&gt;&amp;gt;&lt;/SPAN&gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN style="COLOR: #0000ff"&gt;&amp;lt;&lt;/SPAN&gt;&lt;SPAN style="COLOR: #800000"&gt;binding&lt;/SPAN&gt; &lt;SPAN style="COLOR: #ff0000"&gt;protocol&lt;/SPAN&gt;&lt;SPAN style="COLOR: #0000ff"&gt;="ftp"&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&amp;nbsp;&lt;SPAN style="COLOR: #ff0000"&gt;bindingInformation&lt;/SPAN&gt;&lt;SPAN style="COLOR: #0000ff"&gt;="*:21:ftp.contoso.com"&lt;/SPAN&gt; &lt;SPAN style="COLOR: #0000ff"&gt;/&amp;gt;&lt;/SPAN&gt;&lt;BR&gt;&amp;nbsp; &lt;SPAN style="COLOR: #0000ff"&gt;&amp;lt;/&lt;/SPAN&gt;&lt;SPAN style="COLOR: #800000"&gt;bindings&lt;/SPAN&gt;&lt;SPAN style="COLOR: #0000ff"&gt;&amp;gt;&lt;/SPAN&gt;&lt;BR&gt;&amp;nbsp; &lt;SPAN style="COLOR: #0000ff"&gt;&amp;lt;&lt;/SPAN&gt;&lt;SPAN style="COLOR: #800000"&gt;ftpServer&lt;/SPAN&gt;&lt;SPAN style="COLOR: #0000ff"&gt;&amp;gt;&lt;/SPAN&gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN style="COLOR: #0000ff"&gt;&amp;lt;&lt;/SPAN&gt;&lt;SPAN style="COLOR: #800000"&gt;security&lt;/SPAN&gt;&lt;SPAN style="COLOR: #0000ff"&gt;&amp;gt;&lt;/SPAN&gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN style="COLOR: #0000ff"&gt;&amp;lt;&lt;/SPAN&gt;&lt;SPAN style="COLOR: #800000"&gt;ssl&lt;/SPAN&gt; &lt;SPAN style="COLOR: #ff0000"&gt;controlChannelPolicy&lt;/SPAN&gt;&lt;SPAN style="COLOR: #0000ff"&gt;="SslAllow"&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&amp;nbsp;&lt;SPAN style="COLOR: #ff0000"&gt;dataChannelPolicy&lt;/SPAN&gt;&lt;SPAN style="COLOR: #0000ff"&gt;="SslAllow"&lt;/SPAN&gt; &lt;SPAN style="COLOR: #0000ff"&gt;/&amp;gt;&lt;/SPAN&gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN style="COLOR: #0000ff"&gt;&amp;lt;&lt;/SPAN&gt;&lt;SPAN style="COLOR: #800000"&gt;authentication&lt;/SPAN&gt;&lt;SPAN style="COLOR: #0000ff"&gt;&amp;gt;&lt;/SPAN&gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN style="COLOR: #0000ff"&gt;&amp;lt;&lt;/SPAN&gt;&lt;SPAN style="COLOR: #800000"&gt;customAuthentication&lt;/SPAN&gt;&lt;SPAN style="COLOR: #0000ff"&gt;&amp;gt;&lt;/SPAN&gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN style="COLOR: #0000ff"&gt;&amp;lt;&lt;/SPAN&gt;&lt;SPAN style="COLOR: #800000"&gt;providers&lt;/SPAN&gt;&lt;SPAN style="COLOR: #0000ff"&gt;&amp;gt;&lt;/SPAN&gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN style="COLOR: #0000ff"&gt;&amp;lt;&lt;/SPAN&gt;&lt;SPAN style="COLOR: #800000"&gt;add&lt;/SPAN&gt; &lt;SPAN style="COLOR: #ff0000"&gt;name&lt;/SPAN&gt;&lt;SPAN style="COLOR: #0000ff"&gt;="MyCustomFtpAuthenticationProvider"&lt;/SPAN&gt; &lt;SPAN style="COLOR: #0000ff"&gt;/&amp;gt;&lt;/SPAN&gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN style="COLOR: #0000ff"&gt;&amp;lt;/&lt;/SPAN&gt;&lt;SPAN style="COLOR: #800000"&gt;providers&lt;/SPAN&gt;&lt;SPAN style="COLOR: #0000ff"&gt;&amp;gt;&lt;/SPAN&gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN style="COLOR: #0000ff"&gt;&amp;lt;/&lt;/SPAN&gt;&lt;SPAN style="COLOR: #800000"&gt;customAuthentication&lt;/SPAN&gt;&lt;SPAN style="COLOR: #0000ff"&gt;&amp;gt;&lt;/SPAN&gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN style="COLOR: #0000ff"&gt;&amp;lt;/&lt;/SPAN&gt;&lt;SPAN style="COLOR: #800000"&gt;authentication&lt;/SPAN&gt;&lt;SPAN style="COLOR: #0000ff"&gt;&amp;gt;&lt;/SPAN&gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN style="COLOR: #0000ff"&gt;&amp;lt;/&lt;/SPAN&gt;&lt;SPAN style="COLOR: #800000"&gt;security&lt;/SPAN&gt;&lt;SPAN style="COLOR: #0000ff"&gt;&amp;gt;&lt;/SPAN&gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN style="COLOR: #0000ff"&gt;&amp;lt;&lt;/SPAN&gt;&lt;SPAN style="COLOR: #800000"&gt;customFeatures&lt;/SPAN&gt;&lt;SPAN style="COLOR: #0000ff"&gt;&amp;gt;&lt;/SPAN&gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN style="COLOR: #0000ff"&gt;&amp;lt;&lt;/SPAN&gt;&lt;SPAN style="COLOR: #800000"&gt;providers&lt;/SPAN&gt;&lt;SPAN style="COLOR: #0000ff"&gt;&amp;gt;&lt;/SPAN&gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN style="COLOR: #0000ff"&gt;&amp;lt;&lt;/SPAN&gt;&lt;SPAN style="COLOR: #800000"&gt;add&lt;/SPAN&gt; &lt;SPAN style="COLOR: #ff0000"&gt;name&lt;/SPAN&gt;&lt;SPAN style="COLOR: #0000ff"&gt;="MyCustomFtpHomeDirectoryProvider"&lt;/SPAN&gt; &lt;SPAN style="COLOR: #0000ff"&gt;/&amp;gt;&lt;/SPAN&gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN style="COLOR: #0000ff"&gt;&amp;lt;&lt;/SPAN&gt;&lt;SPAN style="COLOR: #800000"&gt;add&lt;/SPAN&gt; &lt;SPAN style="COLOR: #ff0000"&gt;name&lt;/SPAN&gt;&lt;SPAN style="COLOR: #0000ff"&gt;="MyCustomFtpLoggingProvider"&lt;/SPAN&gt; &lt;SPAN style="COLOR: #0000ff"&gt;/&amp;gt;&lt;/SPAN&gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN style="COLOR: #0000ff"&gt;&amp;lt;/&lt;/SPAN&gt;&lt;SPAN style="COLOR: #800000"&gt;providers&lt;/SPAN&gt;&lt;SPAN style="COLOR: #0000ff"&gt;&amp;gt;&lt;/SPAN&gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN style="COLOR: #0000ff"&gt;&amp;lt;/&lt;/SPAN&gt;&lt;SPAN style="COLOR: #800000"&gt;customFeatures&lt;/SPAN&gt;&lt;SPAN style="COLOR: #0000ff"&gt;&amp;gt;&lt;/SPAN&gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN style="COLOR: #0000ff"&gt;&amp;lt;&lt;/SPAN&gt;&lt;SPAN style="COLOR: #800000"&gt;userIsolation&lt;/SPAN&gt; &lt;SPAN style="COLOR: #ff0000"&gt;mode&lt;/SPAN&gt;&lt;SPAN style="COLOR: #0000ff"&gt;="Custom"&lt;/SPAN&gt; &lt;SPAN style="COLOR: #0000ff"&gt;/&amp;gt;&lt;/SPAN&gt;&lt;BR&gt;&amp;nbsp; &lt;SPAN style="COLOR: #0000ff"&gt;&amp;lt;/&lt;/SPAN&gt;&lt;SPAN style="COLOR: #800000"&gt;ftpServer&lt;/SPAN&gt;&lt;SPAN style="COLOR: #0000ff"&gt;&amp;gt;&lt;/SPAN&gt;&lt;BR&gt;&lt;SPAN style="COLOR: #0000ff"&gt;&amp;lt;/&lt;/SPAN&gt;&lt;SPAN style="COLOR: #800000"&gt;site&lt;/SPAN&gt;&lt;SPAN style="COLOR: #0000ff"&gt;&amp;gt;&lt;/SPAN&gt;&lt;/CODE&gt;&lt;/P&gt;
&lt;P&gt;If you look at the above example, you will notice the following providers have been added:&lt;/P&gt;
&lt;UL&gt;
&lt;LI style="LINE-HEIGHT: 150%"&gt;A custom FTP authentication provider named &lt;EM style="FONT-STYLE: italic"&gt;MyCustomFtpAuthenticationProvider&lt;/EM&gt; has been added to the &lt;STRONG style="FONT-WEIGHT: bold"&gt;ftpServer/security/authentication/customAuthentication/providers&lt;/STRONG&gt; collection; this provider will obviously be used by the FTP service to validate usernames and passwords.&lt;/LI&gt;
&lt;LI style="LINE-HEIGHT: 150%"&gt;A custom FTP home directory provider named &lt;EM style="FONT-STYLE: italic"&gt;MyCustomFtpHomeDirectoryProvider&lt;/EM&gt; has been added to the &lt;STRONG style="FONT-WEIGHT: bold"&gt;ftpServer/customFeatures/providers&lt;/STRONG&gt; collection; this will be used by the FTP service for custom user isolation. Note the mode for the &lt;STRONG style="FONT-WEIGHT: bold"&gt;userIsolation&lt;/STRONG&gt; element is set to &lt;EM style="FONT-STYLE: italic"&gt;custom&lt;/EM&gt;.&lt;/LI&gt;
&lt;LI style="LINE-HEIGHT: 150%"&gt;A custom FTP logging provider named &lt;EM style="FONT-STYLE: italic"&gt;MyCustomFtpLoggingProvider&lt;/EM&gt; has been added to the &lt;STRONG style="FONT-WEIGHT: bold"&gt;ftpServer/customFeatures/providers&lt;/STRONG&gt; collection; this will be used by the FTP service for creating custom log files.&lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;As I mentioned earlier, you will notice that the settings for FTP custom providers are stored in different sections of the &lt;STRONG style="FONT-WEIGHT: bold"&gt;ftpServer&lt;/STRONG&gt; collection depending on whether they are used for authentication or some other purpose.&lt;/P&gt;
&lt;H3 id=02&gt;Step 2 - Navigate to an FTP Site in the Configuration Editor&lt;/H3&gt;
&lt;P&gt;Open the IIS Manager and click on the &lt;STRONG style="FONT-WEIGHT: bold"&gt;Configuration Editor&lt;/STRONG&gt; at feature the server level:&lt;/P&gt;
&lt;P style="MARGIN-LEFT: 20px"&gt;&lt;A href="https://bxs1ug.bn1.livefilestore.com/y1pQvThdGUL69bzTfejtWrotYf19S9U8EY_B0pZZGyFMV5j4byqCs79COKdwI8q8H5VbZ6SC_DLwtJM1gGrw_1OoAp1LObGEK9w/AddingCustomProviders01.png" target=_blank mce_href="https://bxs1ug.bn1.livefilestore.com/y1pQvThdGUL69bzTfejtWrotYf19S9U8EY_B0pZZGyFMV5j4byqCs79COKdwI8q8H5VbZ6SC_DLwtJM1gGrw_1OoAp1LObGEK9w/AddingCustomProviders01.png"&gt;&lt;IMG width=512 height=384 alt="" src="https://bxs1ug.bn1.livefilestore.com/y1pQvThdGUL69bzTfejtWrotYf19S9U8EY_B0pZZGyFMV5j4byqCs79COKdwI8q8H5VbZ6SC_DLwtJM1gGrw_1OoAp1LObGEK9w/AddingCustomProviders01.png" border=2 mce_src="https://bxs1ug.bn1.livefilestore.com/y1pQvThdGUL69bzTfejtWrotYf19S9U8EY_B0pZZGyFMV5j4byqCs79COKdwI8q8H5VbZ6SC_DLwtJM1gGrw_1OoAp1LObGEK9w/AddingCustomProviders01.png"&gt;&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;Click the &lt;STRONG style="FONT-WEIGHT: bold"&gt;Section&lt;/STRONG&gt; drop-down menu, expand the the &lt;STRONG style="FONT-WEIGHT: bold"&gt;system.applicationHost&lt;/STRONG&gt; collection, and then highlight the &lt;STRONG style="FONT-WEIGHT: bold"&gt;sites&lt;/STRONG&gt; node:&lt;/P&gt;
&lt;P style="MARGIN-LEFT: 20px"&gt;&lt;A href="https://bxs1ug.bay.livefilestore.com/y2pu5iskSfCSaGpGydHZd9zu_cecxqfAORlWQtWFWeGydI-mOUzfJBRvuQc0bGSMYF6X50FkCbFesX4_Gh152O-7Tj20Td9e_QhRm7Gbeu2mgNRPJAqLFSwE9IefMhdZwPL/AddingCustomProviders11.png" target=_blank mce_href="https://bxs1ug.bay.livefilestore.com/y2pu5iskSfCSaGpGydHZd9zu_cecxqfAORlWQtWFWeGydI-mOUzfJBRvuQc0bGSMYF6X50FkCbFesX4_Gh152O-7Tj20Td9e_QhRm7Gbeu2mgNRPJAqLFSwE9IefMhdZwPL/AddingCustomProviders11.png"&gt;&lt;IMG width=512 height=384 alt="" src="https://bxs1ug.bay.livefilestore.com/y2pu5iskSfCSaGpGydHZd9zu_cecxqfAORlWQtWFWeGydI-mOUzfJBRvuQc0bGSMYF6X50FkCbFesX4_Gh152O-7Tj20Td9e_QhRm7Gbeu2mgNRPJAqLFSwE9IefMhdZwPL/AddingCustomProviders11.png" border=2 mce_src="https://bxs1ug.bay.livefilestore.com/y2pu5iskSfCSaGpGydHZd9zu_cecxqfAORlWQtWFWeGydI-mOUzfJBRvuQc0bGSMYF6X50FkCbFesX4_Gh152O-7Tj20Td9e_QhRm7Gbeu2mgNRPJAqLFSwE9IefMhdZwPL/AddingCustomProviders11.png"&gt;&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;If you click on the &lt;STRONG style="FONT-WEIGHT: bold"&gt;Collection&lt;/STRONG&gt; row, an ellipsis &lt;STRONG style="FONT-WEIGHT: bold"&gt;[...]&lt;/STRONG&gt; will appear:&lt;/P&gt;
&lt;P style="MARGIN-LEFT: 20px"&gt;&lt;A href="https://bxs1ug.bay.livefilestore.com/y2p_yuNw-NF2WsxTKZb_SWWArwgJ7nqVxsPyUoJmqknLcU0Z5LtANYIzs-bcPW9L46KqCHhVYkxScmVonQPadl8fga1IaqVwZhz7EbDl8EIKkt0ZIAxl-E2QmUMdDODj5iX/AddingCustomProviders12.png" target=_blank mce_href="https://bxs1ug.bay.livefilestore.com/y2p_yuNw-NF2WsxTKZb_SWWArwgJ7nqVxsPyUoJmqknLcU0Z5LtANYIzs-bcPW9L46KqCHhVYkxScmVonQPadl8fga1IaqVwZhz7EbDl8EIKkt0ZIAxl-E2QmUMdDODj5iX/AddingCustomProviders12.png"&gt;&lt;IMG width=512 height=384 alt="" src="https://bxs1ug.bay.livefilestore.com/y2p_yuNw-NF2WsxTKZb_SWWArwgJ7nqVxsPyUoJmqknLcU0Z5LtANYIzs-bcPW9L46KqCHhVYkxScmVonQPadl8fga1IaqVwZhz7EbDl8EIKkt0ZIAxl-E2QmUMdDODj5iX/AddingCustomProviders12.png" border=2 mce_src="https://bxs1ug.bay.livefilestore.com/y2p_yuNw-NF2WsxTKZb_SWWArwgJ7nqVxsPyUoJmqknLcU0Z5LtANYIzs-bcPW9L46KqCHhVYkxScmVonQPadl8fga1IaqVwZhz7EbDl8EIKkt0ZIAxl-E2QmUMdDODj5iX/AddingCustomProviders12.png"&gt;&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;When you click the ellipsis &lt;STRONG style="FONT-WEIGHT: bold"&gt;[...]&lt;/STRONG&gt;, IIS will display the &lt;STRONG style="FONT-WEIGHT: bold"&gt;Collection Editor&lt;/STRONG&gt; dialog box for your sites; both HTTP and FTP sites will be displayed:&lt;/P&gt;
&lt;P style="MARGIN-LEFT: 20px"&gt;&lt;A href="https://bxs1ug.bay.livefilestore.com/y2ppYyXeVWUDkLuLSuKpMdue6_abaDYqXUfIDs_jeKsmjhpK34PlK7GorZLg0djB7KfLb9x02nsBnLJykWA9GlAutt2yhhxdAEsiABt7BP0kLQauo9w3i7_kCnm_DXuWkZc/AddingCustomProviders13.png" target=_blank mce_href="https://bxs1ug.bay.livefilestore.com/y2ppYyXeVWUDkLuLSuKpMdue6_abaDYqXUfIDs_jeKsmjhpK34PlK7GorZLg0djB7KfLb9x02nsBnLJykWA9GlAutt2yhhxdAEsiABt7BP0kLQauo9w3i7_kCnm_DXuWkZc/AddingCustomProviders13.png"&gt;&lt;IMG width=512 height=296 alt="" src="https://bxs1ug.bay.livefilestore.com/y2ppYyXeVWUDkLuLSuKpMdue6_abaDYqXUfIDs_jeKsmjhpK34PlK7GorZLg0djB7KfLb9x02nsBnLJykWA9GlAutt2yhhxdAEsiABt7BP0kLQauo9w3i7_kCnm_DXuWkZc/AddingCustomProviders13.png" border=2 mce_src="https://bxs1ug.bay.livefilestore.com/y2ppYyXeVWUDkLuLSuKpMdue6_abaDYqXUfIDs_jeKsmjhpK34PlK7GorZLg0djB7KfLb9x02nsBnLJykWA9GlAutt2yhhxdAEsiABt7BP0kLQauo9w3i7_kCnm_DXuWkZc/AddingCustomProviders13.png"&gt;&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;Expand the &lt;STRONG style="FONT-WEIGHT: bold"&gt;ftpServer&lt;/STRONG&gt; node, which is where all of the site-level settings for an FTP site are kept.&lt;/P&gt;
&lt;H3 id=03&gt;Step 3 - Add custom FTP providers to an FTP site&lt;/H3&gt;
&lt;P&gt;As I mentioned earlier, custom FTP providers fall into two categories: providers that are used for authentication and everything else. Because of this distinction, the following steps show you how to add a provider to the correct section of your settings depending on the provider's purpose.&lt;/P&gt;
&lt;H4 id=03a&gt;Add a custom FTP provider to an FTP site that is not used for authentication&lt;/H4&gt;
&lt;P&gt;Expand the &lt;STRONG style="FONT-WEIGHT: bold"&gt;customFeatures&lt;/STRONG&gt; node, which is located under the &lt;STRONG style="FONT-WEIGHT: bold"&gt;ftpServer&lt;/STRONG&gt; node for an FTP site; this collection defines the custom providers for an FTP site that are not used for authentication, for example: home directory providers, logging providers, etc. When you highlight the &lt;STRONG style="FONT-WEIGHT: bold"&gt;providers&lt;/STRONG&gt; row, an ellipsis &lt;STRONG style="FONT-WEIGHT: bold"&gt;[...]&lt;/STRONG&gt; will appear:&lt;/P&gt;
&lt;P style="MARGIN-LEFT: 20px"&gt;&lt;A href="https://bxs1ug.bay.livefilestore.com/y2pfpeQGbV0Et6_obort5Ta6-pGMbAvWOD5nefxlXcVViSrpL--G3R1E0HL5Y7RDaEL9WjP0QagmpIcC7v41HpBNZ4uuHU5GOYhASiOCpnfYzd_JgnIXHrz6kdSLZMSTc1v/AddingCustomProviders14.png" target=_blank mce_href="https://bxs1ug.bay.livefilestore.com/y2pfpeQGbV0Et6_obort5Ta6-pGMbAvWOD5nefxlXcVViSrpL--G3R1E0HL5Y7RDaEL9WjP0QagmpIcC7v41HpBNZ4uuHU5GOYhASiOCpnfYzd_JgnIXHrz6kdSLZMSTc1v/AddingCustomProviders14.png"&gt;&lt;IMG width=512 height=296 alt="" src="https://bxs1ug.bay.livefilestore.com/y2pfpeQGbV0Et6_obort5Ta6-pGMbAvWOD5nefxlXcVViSrpL--G3R1E0HL5Y7RDaEL9WjP0QagmpIcC7v41HpBNZ4uuHU5GOYhASiOCpnfYzd_JgnIXHrz6kdSLZMSTc1v/AddingCustomProviders14.png" border=2 mce_src="https://bxs1ug.bay.livefilestore.com/y2pfpeQGbV0Et6_obort5Ta6-pGMbAvWOD5nefxlXcVViSrpL--G3R1E0HL5Y7RDaEL9WjP0QagmpIcC7v41HpBNZ4uuHU5GOYhASiOCpnfYzd_JgnIXHrz6kdSLZMSTc1v/AddingCustomProviders14.png"&gt;&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;When you click the ellipsis &lt;STRONG style="FONT-WEIGHT: bold"&gt;[...]&lt;/STRONG&gt;, IIS will display the &lt;STRONG style="FONT-WEIGHT: bold"&gt;Collection Editor&lt;/STRONG&gt; dialog box for your custom features (providers). When you click &lt;STRONG style="FONT-WEIGHT: bold"&gt;Add&lt;/STRONG&gt; in the &lt;STRONG style="FONT-WEIGHT: bold"&gt;Actions&lt;/STRONG&gt; pane, you need to enter the name of an FTP provider that you entered by following the instructions in &lt;A href="http://blogs.iis.net/b/robert_mcmurray/archive/2013/03/31/adding-custom-ftp-providers-with-the-iis-configuration-editor-part-1.aspx" target=_blank mce_href="http://blogs.iis.net/b/robert_mcmurray/archive/2013/03/31/adding-custom-ftp-providers-with-the-iis-configuration-editor-part-1.aspx"&gt;Part 1 of this blog series&lt;/A&gt;:&lt;/P&gt;
&lt;P style="MARGIN-LEFT: 20px"&gt;&lt;A href="https://bxs1ug.bay.livefilestore.com/y2pJsI5DI1X53ld7QN1wDy5UnWDjkD0MQZVmvBenffUH6XQqjBtuS_GhYzP6jc6mC-RBLeorySlC8rr-KMuMlGuNEI9NzsIFz8p2jhJqJakTd0LzXBeWf0E4ZXfzKDOag1Y/AddingCustomProviders15.png" target=_blank mce_href="https://bxs1ug.bay.livefilestore.com/y2pJsI5DI1X53ld7QN1wDy5UnWDjkD0MQZVmvBenffUH6XQqjBtuS_GhYzP6jc6mC-RBLeorySlC8rr-KMuMlGuNEI9NzsIFz8p2jhJqJakTd0LzXBeWf0E4ZXfzKDOag1Y/AddingCustomProviders15.png"&gt;&lt;IMG width=512 height=296 alt="" src="https://bxs1ug.bay.livefilestore.com/y2pJsI5DI1X53ld7QN1wDy5UnWDjkD0MQZVmvBenffUH6XQqjBtuS_GhYzP6jc6mC-RBLeorySlC8rr-KMuMlGuNEI9NzsIFz8p2jhJqJakTd0LzXBeWf0E4ZXfzKDOag1Y/AddingCustomProviders15.png" border=2 mce_src="https://bxs1ug.bay.livefilestore.com/y2pJsI5DI1X53ld7QN1wDy5UnWDjkD0MQZVmvBenffUH6XQqjBtuS_GhYzP6jc6mC-RBLeorySlC8rr-KMuMlGuNEI9NzsIFz8p2jhJqJakTd0LzXBeWf0E4ZXfzKDOag1Y/AddingCustomProviders15.png"&gt;&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;Once you enter the name of your FTP provider in the &lt;STRONG style="FONT-WEIGHT: bold"&gt;Collection Editor&lt;/STRONG&gt; dialog box for your custom features, you can close that dialog box. The &lt;STRONG style="FONT-WEIGHT: bold"&gt;Collection Editor&lt;/STRONG&gt; for your sites will reflect the updated provider count for your FTP site:&lt;/P&gt;
&lt;P style="MARGIN-LEFT: 20px"&gt;&lt;A href="https://bxs1ug.bay.livefilestore.com/y2pWAk5VbdUYk7N-yuWehl93bZHGRcelTodMLkgFkIF0l97ptyNgn4WAqMdoUNXf3R_weLFUI_MNYljQ6i3bFsd8Q1Eu3OAGH9-vEVG7H0V-vsJd-skPW5B6iYqoocRinZQ/AddingCustomProviders16.png" target=_blank mce_href="https://bxs1ug.bay.livefilestore.com/y2pWAk5VbdUYk7N-yuWehl93bZHGRcelTodMLkgFkIF0l97ptyNgn4WAqMdoUNXf3R_weLFUI_MNYljQ6i3bFsd8Q1Eu3OAGH9-vEVG7H0V-vsJd-skPW5B6iYqoocRinZQ/AddingCustomProviders16.png"&gt;&lt;IMG width=512 height=296 alt="" src="https://bxs1ug.bay.livefilestore.com/y2pWAk5VbdUYk7N-yuWehl93bZHGRcelTodMLkgFkIF0l97ptyNgn4WAqMdoUNXf3R_weLFUI_MNYljQ6i3bFsd8Q1Eu3OAGH9-vEVG7H0V-vsJd-skPW5B6iYqoocRinZQ/AddingCustomProviders16.png" border=2 mce_src="https://bxs1ug.bay.livefilestore.com/y2pWAk5VbdUYk7N-yuWehl93bZHGRcelTodMLkgFkIF0l97ptyNgn4WAqMdoUNXf3R_weLFUI_MNYljQ6i3bFsd8Q1Eu3OAGH9-vEVG7H0V-vsJd-skPW5B6iYqoocRinZQ/AddingCustomProviders16.png"&gt;&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;&lt;STRONG style="FONT-WEIGHT: bold"&gt;Important Note&lt;/STRONG&gt;: If you are adding a custom FTP Home Directory Provider, you have to configure the mode for FTP's User Isolation features. To do so, you need to expand the userIsolation node, which is located under the &lt;STRONG style="FONT-WEIGHT: bold"&gt;ftpServer&lt;/STRONG&gt; node for an FTP site. Once you have done so, click the &lt;STRONG style="FONT-WEIGHT: bold"&gt;mode&lt;/STRONG&gt; drop-down menu and choose &lt;STRONG style="FONT-WEIGHT: bold"&gt;Custom&lt;/STRONG&gt; from the list of choices:&lt;/P&gt;
&lt;P style="MARGIN-LEFT: 20px"&gt;&lt;A href="https://bxs1ug.bay.livefilestore.com/y2p2OpSUOMUd1Hxz3UiGhZnjRuh2B_UI8yxVzsXdLqh4IsP9z12fR-k_towyhWaqBBTxd43NmfLkyTkiek5o6V7JdQix2LmzoyoUANeY350HUsVf0Q6lqZ3Iwgoo1szmpk2/AddingCustomProviders17.png" target=_blank mce_href="https://bxs1ug.bay.livefilestore.com/y2p2OpSUOMUd1Hxz3UiGhZnjRuh2B_UI8yxVzsXdLqh4IsP9z12fR-k_towyhWaqBBTxd43NmfLkyTkiek5o6V7JdQix2LmzoyoUANeY350HUsVf0Q6lqZ3Iwgoo1szmpk2/AddingCustomProviders17.png"&gt;&lt;IMG width=512 height=296 alt="" src="https://bxs1ug.bay.livefilestore.com/y2p2OpSUOMUd1Hxz3UiGhZnjRuh2B_UI8yxVzsXdLqh4IsP9z12fR-k_towyhWaqBBTxd43NmfLkyTkiek5o6V7JdQix2LmzoyoUANeY350HUsVf0Q6lqZ3Iwgoo1szmpk2/AddingCustomProviders17.png" border=2 mce_src="https://bxs1ug.bay.livefilestore.com/y2p2OpSUOMUd1Hxz3UiGhZnjRuh2B_UI8yxVzsXdLqh4IsP9z12fR-k_towyhWaqBBTxd43NmfLkyTkiek5o6V7JdQix2LmzoyoUANeY350HUsVf0Q6lqZ3Iwgoo1szmpk2/AddingCustomProviders17.png"&gt;&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;When you close the &lt;STRONG style="FONT-WEIGHT: bold"&gt;Collection Editor&lt;/STRONG&gt; dialog box for your sites, you need to click &lt;STRONG style="FONT-WEIGHT: bold"&gt;Apply&lt;/STRONG&gt; in the &lt;STRONG style="FONT-WEIGHT: bold"&gt;Actions&lt;/STRONG&gt; pane to commit the changes to your IIS settings:&lt;/P&gt;
&lt;P style="MARGIN-LEFT: 20px"&gt;&lt;A href="https://bxs1ug.bay.livefilestore.com/y2p5cohl6iKW0UPNV_IQTB_bDNTVQOrTOwTmbUR_X7RfZRQnQS3CCAYReMqa5YDYOrf8Zd7u59D-vl7g_dsn_JILRyiOhr4XJYC_0U4uw1WAqnos98EOsHWreEmw8TuvBGc/AddingCustomProviders18.png" target=_blank mce_href="https://bxs1ug.bay.livefilestore.com/y2p5cohl6iKW0UPNV_IQTB_bDNTVQOrTOwTmbUR_X7RfZRQnQS3CCAYReMqa5YDYOrf8Zd7u59D-vl7g_dsn_JILRyiOhr4XJYC_0U4uw1WAqnos98EOsHWreEmw8TuvBGc/AddingCustomProviders18.png"&gt;&lt;IMG width=512 height=384 alt="" src="https://bxs1ug.bay.livefilestore.com/y2p5cohl6iKW0UPNV_IQTB_bDNTVQOrTOwTmbUR_X7RfZRQnQS3CCAYReMqa5YDYOrf8Zd7u59D-vl7g_dsn_JILRyiOhr4XJYC_0U4uw1WAqnos98EOsHWreEmw8TuvBGc/AddingCustomProviders18.png" border=2 mce_src="https://bxs1ug.bay.livefilestore.com/y2p5cohl6iKW0UPNV_IQTB_bDNTVQOrTOwTmbUR_X7RfZRQnQS3CCAYReMqa5YDYOrf8Zd7u59D-vl7g_dsn_JILRyiOhr4XJYC_0U4uw1WAqnos98EOsHWreEmw8TuvBGc/AddingCustomProviders18.png"&gt;&lt;/A&gt;&lt;/P&gt;
&lt;H4 id=03b&gt;Add a custom FTP authentication provider to an FTP site&lt;/H4&gt;
&lt;P&gt;First and foremost - there is built-in support for adding custom authentication providers in IIS Manager; to see the steps to do so, see the &lt;EM style="FONT-STYLE: italic"&gt;&lt;A href="http://www.iis.net/configreference/system.applicationhost/sites/site/ftpserver/security/authentication/customauthentication" target=_blank mce_href="http://www.iis.net/configreference/system.applicationhost/sites/site/ftpserver/security/authentication/customauthentication"&gt;FTP Custom Authentication &amp;lt;customAuthentication&amp;gt;&lt;/A&gt;&lt;/EM&gt; article on the IIS.NET website. However, if you &lt;EM style="FONT-STYLE: italic"&gt;want&lt;/EM&gt; to add a custom FTP authentication provider to an FTP site by using the IIS Configuration Editor, you can do so by using the following steps.&lt;/P&gt;
&lt;P&gt;Expand the &lt;STRONG style="FONT-WEIGHT: bold"&gt;security&lt;/STRONG&gt; node under the &lt;STRONG style="FONT-WEIGHT: bold"&gt;ftpServer&lt;/STRONG&gt; node for an FTP site, then expand the &lt;STRONG style="FONT-WEIGHT: bold"&gt;authentication&lt;/STRONG&gt; node, and then expand the &lt;STRONG style="FONT-WEIGHT: bold"&gt;customAuthentication&lt;/STRONG&gt; node; this collection defines the custom authentication providers for an FTP site. When you highlight the &lt;STRONG style="FONT-WEIGHT: bold"&gt;providers&lt;/STRONG&gt; row, an ellipsis &lt;STRONG style="FONT-WEIGHT: bold"&gt;[...]&lt;/STRONG&gt; will appear:&lt;/P&gt;
&lt;P style="MARGIN-LEFT: 20px"&gt;&lt;A href="https://bxs1ug.bay.livefilestore.com/y2p9qjk1U2qoectIEAkRwAOXdK7VJo922SK6YVJEomgskonse1Nci4Hg2fUoVqe4BHs2eLmmyr6IHHCcNxQRZclFSt6ELPOpELSxRU9Rom-uMVTxfCXWLJNTWO5B9RtHQtT/AddingCustomProviders19.png" target=_blank mce_href="https://bxs1ug.bay.livefilestore.com/y2p9qjk1U2qoectIEAkRwAOXdK7VJo922SK6YVJEomgskonse1Nci4Hg2fUoVqe4BHs2eLmmyr6IHHCcNxQRZclFSt6ELPOpELSxRU9Rom-uMVTxfCXWLJNTWO5B9RtHQtT/AddingCustomProviders19.png"&gt;&lt;IMG width=512 height=296 alt="" src="https://bxs1ug.bay.livefilestore.com/y2p9qjk1U2qoectIEAkRwAOXdK7VJo922SK6YVJEomgskonse1Nci4Hg2fUoVqe4BHs2eLmmyr6IHHCcNxQRZclFSt6ELPOpELSxRU9Rom-uMVTxfCXWLJNTWO5B9RtHQtT/AddingCustomProviders19.png" border=2 mce_src="https://bxs1ug.bay.livefilestore.com/y2p9qjk1U2qoectIEAkRwAOXdK7VJo922SK6YVJEomgskonse1Nci4Hg2fUoVqe4BHs2eLmmyr6IHHCcNxQRZclFSt6ELPOpELSxRU9Rom-uMVTxfCXWLJNTWO5B9RtHQtT/AddingCustomProviders19.png"&gt;&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;When you click the ellipsis &lt;STRONG style="FONT-WEIGHT: bold"&gt;[...]&lt;/STRONG&gt;, IIS will display the &lt;STRONG style="FONT-WEIGHT: bold"&gt;Collection Editor&lt;/STRONG&gt; dialog box for your custom authentication providers. When you click &lt;STRONG style="FONT-WEIGHT: bold"&gt;Add&lt;/STRONG&gt; in the &lt;STRONG style="FONT-WEIGHT: bold"&gt;Actions&lt;/STRONG&gt; pane, you need to enter the name of an FTP authentication provider that you entered by following the instructions in &lt;A href="http://blogs.iis.net/b/robert_mcmurray/archive/2013/03/31/adding-custom-ftp-providers-with-the-iis-configuration-editor-part-1.aspx" target=_blank mce_href="http://blogs.iis.net/b/robert_mcmurray/archive/2013/03/31/adding-custom-ftp-providers-with-the-iis-configuration-editor-part-1.aspx"&gt;Part 1 of this blog series&lt;/A&gt;:&lt;/P&gt;
&lt;P style="MARGIN-LEFT: 20px"&gt;&lt;A href="https://bxs1ug.bay.livefilestore.com/y2pToyxUBEMIH2PvciZJlRpcQDeWSy31EpJ-6Q6sBRCNP_iJk4SI3E8e5yGWPJtExuJsgg96LmloU3zxYNDrVVtc6VGif_UyEivhFTMlQ5ckohnnvbg0kWEAmF6_GQ25MWG/AddingCustomProviders20.png" target=_blank mce_href="https://bxs1ug.bay.livefilestore.com/y2pToyxUBEMIH2PvciZJlRpcQDeWSy31EpJ-6Q6sBRCNP_iJk4SI3E8e5yGWPJtExuJsgg96LmloU3zxYNDrVVtc6VGif_UyEivhFTMlQ5ckohnnvbg0kWEAmF6_GQ25MWG/AddingCustomProviders20.png"&gt;&lt;IMG width=512 height=296 alt="" src="https://bxs1ug.bay.livefilestore.com/y2pToyxUBEMIH2PvciZJlRpcQDeWSy31EpJ-6Q6sBRCNP_iJk4SI3E8e5yGWPJtExuJsgg96LmloU3zxYNDrVVtc6VGif_UyEivhFTMlQ5ckohnnvbg0kWEAmF6_GQ25MWG/AddingCustomProviders20.png" border=2 mce_src="https://bxs1ug.bay.livefilestore.com/y2pToyxUBEMIH2PvciZJlRpcQDeWSy31EpJ-6Q6sBRCNP_iJk4SI3E8e5yGWPJtExuJsgg96LmloU3zxYNDrVVtc6VGif_UyEivhFTMlQ5ckohnnvbg0kWEAmF6_GQ25MWG/AddingCustomProviders20.png"&gt;&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;Once you enter the name of your FTP authentication provider in the &lt;STRONG style="FONT-WEIGHT: bold"&gt;Collection Editor&lt;/STRONG&gt; dialog box for your custom authentication providers, you can close that dialog box. The &lt;STRONG style="FONT-WEIGHT: bold"&gt;Collection Editor&lt;/STRONG&gt; for your sites will reflect the updated authentication provider count for your FTP site:&lt;/P&gt;
&lt;P style="MARGIN-LEFT: 20px"&gt;&lt;A href="https://bxs1ug.bay.livefilestore.com/y2p22RRclHKkdMfozIC0fL021JHxI02GyBNysyc_U-Ewsxdw9dA5pCcWQLFQDswd5q6oAGdgM3KfdlCE9V9RY5g5uC0yTP46e5Es_fE0Z9I6KWUGjxjOw1u6gJQ9FDs0s44/AddingCustomProviders21.png" target=_blank mce_href="https://bxs1ug.bay.livefilestore.com/y2p22RRclHKkdMfozIC0fL021JHxI02GyBNysyc_U-Ewsxdw9dA5pCcWQLFQDswd5q6oAGdgM3KfdlCE9V9RY5g5uC0yTP46e5Es_fE0Z9I6KWUGjxjOw1u6gJQ9FDs0s44/AddingCustomProviders21.png"&gt;&lt;IMG width=512 height=296 alt="" src="https://bxs1ug.bay.livefilestore.com/y2p22RRclHKkdMfozIC0fL021JHxI02GyBNysyc_U-Ewsxdw9dA5pCcWQLFQDswd5q6oAGdgM3KfdlCE9V9RY5g5uC0yTP46e5Es_fE0Z9I6KWUGjxjOw1u6gJQ9FDs0s44/AddingCustomProviders21.png" border=2 mce_src="https://bxs1ug.bay.livefilestore.com/y2p22RRclHKkdMfozIC0fL021JHxI02GyBNysyc_U-Ewsxdw9dA5pCcWQLFQDswd5q6oAGdgM3KfdlCE9V9RY5g5uC0yTP46e5Es_fE0Z9I6KWUGjxjOw1u6gJQ9FDs0s44/AddingCustomProviders21.png"&gt;&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;When you close the &lt;STRONG style="FONT-WEIGHT: bold"&gt;Collection Editor&lt;/STRONG&gt; dialog box for your sites, you need to click &lt;STRONG style="FONT-WEIGHT: bold"&gt;Apply&lt;/STRONG&gt; in the &lt;STRONG style="FONT-WEIGHT: bold"&gt;Actions&lt;/STRONG&gt; pane to commit the changes to your IIS settings:&lt;/P&gt;
&lt;P style="MARGIN-LEFT: 20px"&gt;&lt;A href="https://bxs1ug.bay.livefilestore.com/y2p5cohl6iKW0UPNV_IQTB_bDNTVQOrTOwTmbUR_X7RfZRQnQS3CCAYReMqa5YDYOrf8Zd7u59D-vl7g_dsn_JILRyiOhr4XJYC_0U4uw1WAqnos98EOsHWreEmw8TuvBGc/AddingCustomProviders18.png" target=_blank mce_href="https://bxs1ug.bay.livefilestore.com/y2p5cohl6iKW0UPNV_IQTB_bDNTVQOrTOwTmbUR_X7RfZRQnQS3CCAYReMqa5YDYOrf8Zd7u59D-vl7g_dsn_JILRyiOhr4XJYC_0U4uw1WAqnos98EOsHWreEmw8TuvBGc/AddingCustomProviders18.png"&gt;&lt;IMG width=512 height=384 alt="" src="https://bxs1ug.bay.livefilestore.com/y2p5cohl6iKW0UPNV_IQTB_bDNTVQOrTOwTmbUR_X7RfZRQnQS3CCAYReMqa5YDYOrf8Zd7u59D-vl7g_dsn_JILRyiOhr4XJYC_0U4uw1WAqnos98EOsHWreEmw8TuvBGc/AddingCustomProviders18.png" border=2 mce_src="https://bxs1ug.bay.livefilestore.com/y2p5cohl6iKW0UPNV_IQTB_bDNTVQOrTOwTmbUR_X7RfZRQnQS3CCAYReMqa5YDYOrf8Zd7u59D-vl7g_dsn_JILRyiOhr4XJYC_0U4uw1WAqnos98EOsHWreEmw8TuvBGc/AddingCustomProviders18.png"&gt;&lt;/A&gt;&lt;/P&gt;
&lt;H3 id=04&gt;Summary and Parting Thoughts&lt;/H3&gt;
&lt;P&gt;As I mentioned in part 1 of this series, I admit that this might seem like a lot of steps to go through, but it's not that difficult once you understand how the configuration settings are organized and you get the hang of using the IIS Configuration Editor to add or modify these settings.&lt;/P&gt;
&lt;H4 id=04a&gt;Disabling Custom User Isolation&lt;/H4&gt;
&lt;P&gt;In the &lt;A href="http://blogs.iis.net/controlpanel/blogs/posteditor.aspx?SelectedNavItem=Posts&amp;amp;sectionid=1091&amp;amp;postid=5068932#03a" mce_href="http://blogs.iis.net/controlpanel/blogs/posteditor.aspx?SelectedNavItem=Posts&amp;amp;sectionid=1091&amp;amp;postid=5068932#03a"&gt;Add a custom FTP provider to an FTP site that is not used for authentication&lt;/A&gt; section of this blog, I added a step to specify &lt;STRONG style="FONT-WEIGHT: bold"&gt;Custom&lt;/STRONG&gt; as the User Isolation mode. Since this is something of an advanced feature, there is no user interface for enabling custom user isolation; this was a design decision to keep people from breaking their FTP sites. Here's why: if you enable custom user isolation and you don't install a custom Home Directory provider for FTP, all users will be denied access to your FTP site.&lt;/P&gt;
&lt;P&gt;That being said, once you have enabled custom user isolation, the option to disable custom user isolation will "magically" appear in the &lt;STRONG style="FONT-WEIGHT: bold"&gt;FTP User Isolation&lt;/STRONG&gt; feature in the IIS Manager. To see this for yourself, you would first need to follow the steps to custom user isolation in the &lt;A href="http://blogs.iis.net/controlpanel/blogs/posteditor.aspx?SelectedNavItem=Posts&amp;amp;sectionid=1091&amp;amp;postid=5068932#03a" mce_href="http://blogs.iis.net/controlpanel/blogs/posteditor.aspx?SelectedNavItem=Posts&amp;amp;sectionid=1091&amp;amp;postid=5068932#03a"&gt;Add a custom FTP provider to an FTP site that is not used for authentication&lt;/A&gt; section of this blog.&lt;/P&gt;
&lt;P&gt;Once you have enabled custom user isolation, highlight your FTP site in the list of &lt;STRONG style="FONT-WEIGHT: bold"&gt;Sites&lt;/STRONG&gt; pane of IIS Manager, then open the &lt;STRONG style="FONT-WEIGHT: bold"&gt;FTP User Isolation&lt;/STRONG&gt; feature:&lt;/P&gt;
&lt;P style="MARGIN-LEFT: 20px"&gt;&lt;A href="https://bxs1ug.bay.livefilestore.com/y2p4IoflfMILbINgRVGrfACTzM7BDjQOgJcchP2ImNoS1KuDEAFDroVzWmbbTQ1HUDhq0PHRZ4KZX4T6r8M1CH-GDRGyFOy_eOtoI9sFVul5Jmp6LQF3kl0YvHGcW_obpzf/AddingCustomProviders22.png" target=_blank mce_href="https://bxs1ug.bay.livefilestore.com/y2p4IoflfMILbINgRVGrfACTzM7BDjQOgJcchP2ImNoS1KuDEAFDroVzWmbbTQ1HUDhq0PHRZ4KZX4T6r8M1CH-GDRGyFOy_eOtoI9sFVul5Jmp6LQF3kl0YvHGcW_obpzf/AddingCustomProviders22.png"&gt;&lt;IMG width=512 height=384 alt="" src="https://bxs1ug.bay.livefilestore.com/y2p4IoflfMILbINgRVGrfACTzM7BDjQOgJcchP2ImNoS1KuDEAFDroVzWmbbTQ1HUDhq0PHRZ4KZX4T6r8M1CH-GDRGyFOy_eOtoI9sFVul5Jmp6LQF3kl0YvHGcW_obpzf/AddingCustomProviders22.png" border=2 mce_src="https://bxs1ug.bay.livefilestore.com/y2p4IoflfMILbINgRVGrfACTzM7BDjQOgJcchP2ImNoS1KuDEAFDroVzWmbbTQ1HUDhq0PHRZ4KZX4T6r8M1CH-GDRGyFOy_eOtoI9sFVul5Jmp6LQF3kl0YvHGcW_obpzf/AddingCustomProviders22.png"&gt;&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;When you open the &lt;STRONG style="FONT-WEIGHT: bold"&gt;FTP User Isolation&lt;/STRONG&gt; feature, you will see that an option for &lt;STRONG style="FONT-WEIGHT: bold"&gt;Custom&lt;/STRONG&gt; now appears in the list of user isolation modes:&lt;/P&gt;
&lt;P style="MARGIN-LEFT: 20px"&gt;&lt;A href="https://bxs1ug.bay.livefilestore.com/y2pC_10jOvR_Gw6zeCgVZ3JEWDO6pwv6UyXey26l9WTG64RdCOqc46_UDEtp1qsdO80Ze2sj88vboL9zwzvcjAyUI6Wb5iTazt4328ioBHwY29hzF-n8ac2M6Enz_OXvfhb/AddingCustomProviders23.png" target=_blank mce_href="https://bxs1ug.bay.livefilestore.com/y2pC_10jOvR_Gw6zeCgVZ3JEWDO6pwv6UyXey26l9WTG64RdCOqc46_UDEtp1qsdO80Ze2sj88vboL9zwzvcjAyUI6Wb5iTazt4328ioBHwY29hzF-n8ac2M6Enz_OXvfhb/AddingCustomProviders23.png"&gt;&lt;IMG width=512 height=384 alt="" src="https://bxs1ug.bay.livefilestore.com/y2pC_10jOvR_Gw6zeCgVZ3JEWDO6pwv6UyXey26l9WTG64RdCOqc46_UDEtp1qsdO80Ze2sj88vboL9zwzvcjAyUI6Wb5iTazt4328ioBHwY29hzF-n8ac2M6Enz_OXvfhb/AddingCustomProviders23.png" border=2 mce_src="https://bxs1ug.bay.livefilestore.com/y2pC_10jOvR_Gw6zeCgVZ3JEWDO6pwv6UyXey26l9WTG64RdCOqc46_UDEtp1qsdO80Ze2sj88vboL9zwzvcjAyUI6Wb5iTazt4328ioBHwY29hzF-n8ac2M6Enz_OXvfhb/AddingCustomProviders23.png"&gt;&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;This option will appear as long as custom user isolation is enabled. If you change the user isolation mode to something other than &lt;STRONG style="FONT-WEIGHT: bold"&gt;Custom&lt;/STRONG&gt;, this option will continue appear in the list of user isolation modes until you navigate somewhere else in IIS Manager. Once you have changed the user isolation mode to one of the built-in modes and you navigate somewhere else, the &lt;STRONG style="FONT-WEIGHT: bold"&gt;Custom&lt;/STRONG&gt; option will not show up in the &lt;STRONG style="FONT-WEIGHT: bold"&gt;FTP User Isolation&lt;/STRONG&gt; feature until you follow the steps to re-enable custom user isolation.&lt;/P&gt;
&lt;H4 id=04b&gt;Additional Information&lt;/H4&gt;
&lt;P&gt;If you want additional information about configuring the settings for FTP providers, you can find detailed reference documentation at the following URLs:&lt;/P&gt;
&lt;UL&gt;
&lt;LI style="LINE-HEIGHT: 150%"&gt;&lt;STRONG style="FONT-WEIGHT: bold"&gt;FTP Custom Features &amp;lt;customFeatures&amp;gt;&lt;/STRONG&gt;&lt;BR&gt;&lt;A href="http://www.iis.net/configreference/system.applicationhost/sites/site/ftpserver/customfeatures" target=_blank mce_href="http://www.iis.net/configreference/system.applicationhost/sites/site/ftpserver/customfeatures"&gt;http://www.iis.net/configreference/system.applicationhost/sites/site/ftpserver/customfeatures&lt;/A&gt;&lt;/LI&gt;
&lt;LI style="LINE-HEIGHT: 150%"&gt;&lt;STRONG style="FONT-WEIGHT: bold"&gt;FTP Custom Authentication &amp;lt;customAuthentication&amp;gt;&lt;/STRONG&gt;&lt;BR&gt;&lt;A href="http://www.iis.net/configreference/system.applicationhost/sites/site/ftpserver/security/authentication/customauthentication" target=_blank mce_href="http://www.iis.net/configreference/system.applicationhost/sites/site/ftpserver/security/authentication/customauthentication"&gt;http://www.iis.net/configreference/system.applicationhost/sites/site/ftpserver/security/authentication/customauthentication&lt;/A&gt;&lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;Each of these articles contain "How-To" steps, detailed information about each of the configuration settings, and code samples for AppCmd.exe, C#/VB.NET, and JavaScript/VBScript.&lt;/P&gt;
&lt;P&gt;As always, let me know if you have any questions. &lt;SPAN style="WHITE-SPACE: nowrap"&gt;;-]&lt;/SPAN&gt;&lt;/P&gt;(Cross-posted from http://blogs.msdn.com/robert_mcmurray/)&lt;img src="http://blogs.iis.net/aggbug.aspx?PostID=5068932" width="1" height="1"&gt;</description><cs:applicationKey>robert_mcmurray</cs:applicationKey><category domain="http://blogs.iis.net/robert_mcmurray/archive/tags/Extensibility/default.aspx">Extensibility</category><category domain="http://blogs.iis.net/robert_mcmurray/archive/tags/FTP/default.aspx">FTP</category><category domain="http://blogs.iis.net/robert_mcmurray/archive/tags/IIS/default.aspx">IIS</category></item><item><title>Feedback Request for Curated Content Views</title><link>http://blogs.iis.net/robert_mcmurray/archive/2013/04/30/feedback-request-for-curated-content-views.aspx</link><pubDate>Tue, 30 Apr 2013 23:51:00 GMT</pubDate><guid isPermaLink="false">50bcf3b4-f6fe-4638-adff-0c150e922e99:5068707</guid><dc:creator>robmcm</dc:creator><slash:comments>0</slash:comments><description>&lt;p&gt;Publishing technical documentation is an interesting business, and a lot of discussion &amp;amp; deliberation goes into the creation process for articles and videos that we produce at Microsoft. For example, when I am writing an article for IIS, should I publish that on www.iis.net, or technet.microsoft.com, or msdn.microsoft.com? Or should I just write a blog about it? And after I have published an article, how will my intended audience find it? As we continue to publish hundreds of technical articles to the websites that I just mentioned, the navigation hierarchy becomes increasingly complex, and content discoverability suffers.&lt;/p&gt;
&lt;p&gt;Some time ago a few of our writers began to experiment with a new way to consolidate lists of related content into something that we called a &amp;quot;Content Map.&amp;quot; The following pages will show you an example of what the Content Map concept looks like:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a style="line-height:150%;" href="http://asp.net/whitepapers/aspnet-web-deployment-content-map" target="_blank"&gt;ASP.NET Deployment Content Map&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a style="line-height:150%;" href="http://asp.net/mvc/overview/getting-started/aspnet-mvc-content-map" target="_blank"&gt;ASP.NET MVC 4 Content Map&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a style="line-height:150%;" href="http://asp.net/whitepapers/aspnet-data-access-content-map" target="_blank"&gt;ASP.NET Data Access Content Map&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Each of these articles received a great deal of positive feedback from customers, but our team wanted to see if there was a way that customers could help us to improve on this design. We know that there is a great deal of third-party content on the Internet, and we wanted a way to recognize that. We also asked several customers about what kinds of content they need to be successful, and we added their suggestions to our deliberation process.&lt;/p&gt;
&lt;p&gt;As a result of our collective discussions, we came up with an idea for what we are internally calling &amp;quot;Curated Content Views.&amp;quot; These &amp;quot;views&amp;quot; are lists of related content topics that are organized to answer a particular question or customer need. A view is assembled by someone at Microsoft based on input from anyone who thinks that an article, blog, video, or code sample might be beneficial as part of the view.&lt;/p&gt;
&lt;p&gt;With that in mind, here are three conceptual content views that a few of the writers on our content team have assembled:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a style="line-height:150%;" href="http://www.asp.net/mvc/tutorials/deployment/cse-curated-view-deploy-to-waws" target="_blank"&gt;How to deploy an ASP.NET web application to a Windows Azure Web Site using Visual Studio&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a style="line-height:150%;" href="http://www.asp.net/mvc/overview/getting-started/cse-curated-view-mvc-security" target="_blank"&gt;How to secure an ASP.NET MVC app&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a style="line-height:150%;" href="http://www.iis.net/learn/publish/using-the-ftp-service/cse-curated-view-ftp-security-settings" target="_blank"&gt;How Do I Configure FTP Security in IIS?&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Our team is requesting feedback from members of the community regarding these conceptual views with regard to the level of detail that is included in each view, the conceptual layouts that were used, and any thoughts about how this content compares with existing table of contents topics or content maps. You can &lt;a href="mailto:%61s%70n%65t%75e@m%69c%72o%73o%66t%2Ec%6Fm?subject=C%75r%61t%65d%20C%6Fn%74e%6Et%20V%69e%77%20%46e%65d%62a%63k"&gt;reply to our content team via email&lt;/a&gt;, or you can post a response to this blog.&lt;/p&gt;
&lt;p&gt;While we are interested in any feedback you may have, our team has put together the following list of specific questions to think about:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Each curated view/content map includes a list of suggested content links. Below is a list of additional information that could be provided with each link. Which of these are most important?
&lt;ul&gt;
&lt;li&gt;Date that the content was posted.&lt;/li&gt;
&lt;li&gt;Type of content (video, article, code sample, etc.).&lt;/li&gt;
&lt;li&gt;Author name.&lt;/li&gt;
&lt;li&gt;Short description.&lt;/li&gt;
&lt;li&gt;Level of difficulty of the content.&lt;/li&gt;
&lt;li&gt;Version of software/framework or SDK the content refers to.&lt;/li&gt;
&lt;li&gt;Website the content appears on.&lt;/li&gt;
&lt;li&gt;Number of likes or positive reviews.&lt;/li&gt;
&lt;li&gt;Rating assigned to the content by the community.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;If you opened a page similar to one of these curated views/content maps from Google or Bing search results, would you be likely to try the links on this page or just return to search results?&lt;/li&gt;
&lt;li&gt;If Microsoft and community experts published a large set of content views similar to these on a website, would you visit that site first when you had technical questions, or would you do an Internet search on Google/Bing first?&lt;/li&gt;
&lt;li&gt;Do the questions addressed by each curated view seem too narrow or too broad in scope to be helpful? If so, which ones?&lt;/li&gt;
&lt;li&gt;Do any of the curated views/content maps provide too much or too little detail for each link in the list? If so, which ones?&lt;/li&gt;
&lt;li&gt;Do you find it helpful to see the profile of the person who created the curated view/content map?&lt;/li&gt;
&lt;li&gt;If we provided an easy way for you to publish your own curated views (with attribution) to a common site together with the Microsoft-created curated views, would you be interested in doing so? Why or why not?&lt;/li&gt;
&lt;li&gt;If we provided an easy way for you to suggest new content items to add to content views/content maps that have already been published, would you be interested in doing so? Why or why not?&lt;/li&gt;
&lt;li&gt;What would make these content views/content maps more helpful?&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Thanks!&lt;/p&gt;
(Cross-posted from http://blogs.msdn.com/robert_mcmurray/)&lt;img src="http://blogs.iis.net/aggbug.aspx?PostID=5068707" width="1" height="1"&gt;</description><cs:applicationKey>robert_mcmurray</cs:applicationKey><category domain="http://blogs.iis.net/robert_mcmurray/archive/tags/Content/default.aspx">Content</category><category domain="http://blogs.iis.net/robert_mcmurray/archive/tags/IIS/default.aspx">IIS</category></item><item><title>April IIS Community Newsletter</title><link>http://blogs.iis.net/rickbarber/archive/2013/04/29/april-iis-community-newsletter.aspx</link><pubDate>Mon, 29 Apr 2013 18:07:10 GMT</pubDate><guid isPermaLink="false">50bcf3b4-f6fe-4638-adff-0c150e922e99:5068564</guid><dc:creator>Rick Barber</dc:creator><slash:comments>0</slash:comments><description>For the latest news and happenings in the IIS community, be sure to check out the April edition of the IIS Community Newsletter! http://www.iisnewsletter.com/archive/april2013.html If you’re not a subscriber, don’t miss out and have it delivered directly to your inbox. You can subscribe at the link below: http://www.iisnewsletter.com/Subscribe.aspx Enjoy!...(&lt;a href="http://blogs.iis.net/rickbarber/archive/2013/04/29/april-iis-community-newsletter.aspx"&gt;read more&lt;/a&gt;)&lt;img src="http://blogs.iis.net/aggbug.aspx?PostID=5068564" width="1" height="1"&gt;</description><cs:applicationKey>rickbarber</cs:applicationKey><category domain="http://blogs.iis.net/rickbarber/archive/tags/IIS/default.aspx">IIS</category><category domain="http://blogs.iis.net/rickbarber/archive/tags/IIS+Newsletter/default.aspx">IIS Newsletter</category></item><item><title>IIS 6.0 WebDAV and Compound Document Format Files Revisited with Workarounds</title><link>http://blogs.iis.net/robert_mcmurray/archive/2013/04/24/iis-6-0-webdav-and-compound-document-format-files-revisited-with-workarounds.aspx</link><pubDate>Thu, 25 Apr 2013 01:47:00 GMT</pubDate><guid isPermaLink="false">50bcf3b4-f6fe-4638-adff-0c150e922e99:5068119</guid><dc:creator>robmcm</dc:creator><slash:comments>1</slash:comments><description>&lt;p&gt;A few years ago I wrote the following blog, wherein I described how the WebDAV functionality in IIS 6.0 worked with files that are &lt;a href="http://msdn.microsoft.com/library/ms693383.aspx" target="_blank"&gt;Compound Document&lt;/a&gt; format:&lt;/p&gt;
&lt;p style="margin-left: 20px;"&gt;&lt;a href="http://blogs.iis.net/b/robert_mcmurray/archive/2010/04/21/iis-6-0-webdav-and-compound-document-format-files.aspx" target="_blank"&gt;IIS 6.0 WebDAV and Compound Document Format Files&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;As I explained in that blog post, WebDAV needs somewhere to store "properties" for files that are uploaded to the server, and WebDAV uses the compound document format to accomplish this according to the following implementation logic:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;If the file is already in the compound document file format, IIS simply adds the WebDAV properties to the existing file. This data will not be used by the application that created the file - it will only be used by WebDAV. However, the file size will increase because WebDAV properties are added to the compound document.&lt;/li&gt;
&lt;li&gt;For other files, WebDAV stores a compound document in an NTFS &lt;a href="http://msdn.microsoft.com/library/aa364404.aspx" target="_blank"&gt;alternate data stream&lt;/a&gt; that is attached to the file. You will never see this additional data from any directory listing, and the file size doesn't change because it's in an alternate data stream.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;I recently had a customer contact me in order to ask if there was a way to disable this functionality since he didn't want his files modified in order to store the WebDAV properties. Unfortunately there is no built-in option for IIS that will disable this functionality, but there are a few workarounds.&lt;/p&gt;
&lt;h4 align="left"&gt;Workaround #1 - Change the File Type&lt;/h4&gt;
&lt;p align="left"&gt;First and foremost - you can change your file type to something other than the compound document format. For example, if you are uploading files that were created in Microsoft Office, if you can upload your files in the newer &lt;a href="http://technet.microsoft.com/library/cc179190.aspx" target="_blank"&gt;Office Open XML formats&lt;/a&gt;, then you will not run into this problem. By way of explanation, older Microsoft Office files are in compound document format, whereas files that are that are created with Microsoft Office 2010 and later are in a zipped, XML-based file format. These files will have extensions like *.DOCX for Microsoft Word documents, *.XLSX for Microsoft Excel spreadsheets, and *.PPTX for Microsoft PowerPoint presentations.&lt;/p&gt;
&lt;h4 align="left"&gt;Workaround #2 - Wrap Compound Document Files in a Separate File Type&lt;/h4&gt;
&lt;p&gt;If you are using a file that must be in compound document format, like a setup package in Microsoft Installer (*.MSI) format, you can upload the file in a *.ZIP file, or you can wrap the setup package inside a self-extracting executable by using a technology like Microsoft's &lt;a href="http://technet.microsoft.com/library/dd346760.aspx" target="_blank"&gt;IExpress Wizard&lt;/a&gt; (which ships as a built-in utility with most versions of Windows).&lt;/p&gt;
&lt;h4 align="left"&gt;Workaround #3 - Block WebDAV Properties&lt;/h4&gt;
&lt;p&gt;If you absolutely cannot change your document from compound document format, I have a completely unsupported workaround that I can suggest. Since the problem arises when properties are added to a file, you can find a way to intercept the WebDAV commands that try to set properties. The actual HTTP verb that is used is PROPPATCH, so if you can find a way to keep this command from being used, then you can prevent files from being modified. Unfortunately you cannot simply suppress PROPPATCH commands by using a security tool like Microsoft's &lt;a href="http://www.iis.net/downloads/microsoft/urlscan" target="_blank"&gt;UrlScan&lt;/a&gt; to block the command, because this will cause many WebDAV clients to fail.&lt;/p&gt;
&lt;p&gt;Instead, what I did as a workaround was to write an example ISAPI filter for IIS 6.0 that intercepts incoming PROPPATCH commands and always sends a successful (e.g. "200 OK") response to the WebDAV client, but in reality the filter does nothing with the properties and ends the request processing. This tricks a WebDAV client into thinking that it succeeded, and it prevents your files in compound document format from being modified. However, this also means that no WebDAV properties will ever be stored with your files; but if that's acceptable to you, (and it usually should be), then you can use this workaround.&lt;/p&gt;
&lt;p&gt;With that in mind, here's the C++ code for my example ISAPI filter, and please remember that this is a completely unsupported workaround that is intended for use only when you cannot repackage your files to use something other than the compound document format.&lt;/p&gt;
&lt;pre style="color: black; background-color: #ffffff; margin-left: 20px;"&gt;&lt;span style="color: #cc6633;"&gt;#define&lt;/span&gt; _WIN32_WINNT 0x0400

&lt;span style="color: #cc6633;"&gt;#include&lt;/span&gt; &amp;lt;windows.h&amp;gt;
&lt;span style="color: #cc6633;"&gt;#include&lt;/span&gt; &amp;lt;httpfilt.h&amp;gt;

&lt;span style="color: #cc6633;"&gt;#define&lt;/span&gt; STRSAFE_LIB
&lt;span style="color: #cc6633;"&gt;#include&lt;/span&gt; &amp;lt;strsafe.h&amp;gt;

&lt;span style="color: #cc6633;"&gt;#define&lt;/span&gt; BUFFER_SIZE 2048

&lt;span style="color: #0000ff;"&gt;const&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;char&lt;/span&gt; xmlpart1[] = &lt;span style="color: #800000;"&gt;"&amp;lt;?xml version=\"1.0\"?&amp;gt;"&lt;/span&gt;
  &lt;span style="color: #800000;"&gt;"&amp;lt;a:multistatus xmlns:a=\"DAV:\"&amp;gt;"&lt;/span&gt;
  &lt;span style="color: #800000;"&gt;"&amp;lt;a:response&amp;gt;"&lt;/span&gt;
  &lt;span style="color: #800000;"&gt;"&amp;lt;a:href&amp;gt;"&lt;/span&gt;;

&lt;span style="color: #0000ff;"&gt;const&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;char&lt;/span&gt; xmlpart2[] = &lt;span style="color: #800000;"&gt;"&amp;lt;/a:href&amp;gt;"&lt;/span&gt;
  &lt;span style="color: #800000;"&gt;"&amp;lt;a:propstat&amp;gt;"&lt;/span&gt;
  &lt;span style="color: #800000;"&gt;"&amp;lt;a:status&amp;gt;HTTP/1.1 200 OK&amp;lt;/a:status&amp;gt;"&lt;/span&gt;
  &lt;span style="color: #800000;"&gt;"&amp;lt;/a:propstat&amp;gt;"&lt;/span&gt;
  &lt;span style="color: #800000;"&gt;"&amp;lt;/a:response&amp;gt;"&lt;/span&gt;
  &lt;span style="color: #800000;"&gt;"&amp;lt;/a:multistatus&amp;gt;"&lt;/span&gt;;

BOOL WINAPI GetFilterVersion(PHTTP_FILTER_VERSION pVer)
{
  HRESULT hr = S_OK;
  &lt;span style="color: #008000;"&gt;// Set the filter's version.&lt;/span&gt;
  pVer-&amp;gt;dwFilterVersion = HTTP_FILTER_REVISION;
  &lt;span style="color: #008000;"&gt;// Set the filter's description.&lt;/span&gt;
  hr = StringCchCopyEx(
    pVer-&amp;gt;lpszFilterDesc,256,&lt;span style="color: #800000;"&gt;"PROPPATCH"&lt;/span&gt;,
    NULL,NULL,STRSAFE_IGNORE_NULLS);
  &lt;span style="color: #0000ff;"&gt;if&lt;/span&gt; (FAILED(hr)) &lt;span style="color: #0000ff;"&gt;return&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;FALSE&lt;/span&gt;;
  &lt;span style="color: #008000;"&gt;// Set the filter's flags.&lt;/span&gt;
  pVer-&amp;gt;dwFlags = SF_NOTIFY_ORDER_HIGH | SF_NOTIFY_PREPROC_HEADERS;
  &lt;span style="color: #0000ff;"&gt;return&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;TRUE&lt;/span&gt;;
}

DWORD WINAPI HttpFilterProc(
  PHTTP_FILTER_CONTEXT pfc,
  DWORD NotificationType,
  LPVOID pvNotification )
{
  &lt;span style="color: #008000;"&gt;// Verify the correct notification.&lt;/span&gt;
  &lt;span style="color: #0000ff;"&gt;if&lt;/span&gt; ( NotificationType == SF_NOTIFY_PREPROC_HEADERS)
  {
    PHTTP_FILTER_PREPROC_HEADERS pHeaders;
    HRESULT hr = S_OK;
  
    &lt;span style="color: #0000ff;"&gt;bool&lt;/span&gt; fSecure = false;

    &lt;span style="color: #0000ff;"&gt;char&lt;/span&gt; szServerName[BUFFER_SIZE] = &lt;span style="color: #800000;"&gt;""&lt;/span&gt;;
    &lt;span style="color: #0000ff;"&gt;char&lt;/span&gt; szSecure[2] = &lt;span style="color: #800000;"&gt;""&lt;/span&gt;;
    &lt;span style="color: #0000ff;"&gt;char&lt;/span&gt; szResponseXML[BUFFER_SIZE] = &lt;span style="color: #800000;"&gt;""&lt;/span&gt;;
    &lt;span style="color: #0000ff;"&gt;char&lt;/span&gt; szResponseURL[BUFFER_SIZE] = &lt;span style="color: #800000;"&gt;""&lt;/span&gt;;
    &lt;span style="color: #0000ff;"&gt;char&lt;/span&gt; szRequestURL[BUFFER_SIZE] = &lt;span style="color: #800000;"&gt;""&lt;/span&gt;;
    &lt;span style="color: #0000ff;"&gt;char&lt;/span&gt; szMethod[BUFFER_SIZE] = &lt;span style="color: #800000;"&gt;""&lt;/span&gt;;

    DWORD dwBuffSize = 0;

    pHeaders = (PHTTP_FILTER_PREPROC_HEADERS) pvNotification;

    &lt;span style="color: #008000;"&gt;// Get the method of the request&lt;/span&gt;
    dwBuffSize = BUFFER_SIZE-1;
    &lt;span style="color: #008000;"&gt;// Exit with an error status if a failure occured.&lt;/span&gt;
    &lt;span style="color: #0000ff;"&gt;if&lt;/span&gt; (!pfc-&amp;gt;GetServerVariable(
      pfc, &lt;span style="color: #800000;"&gt;"HTTP_METHOD"&lt;/span&gt;, szMethod, &amp;amp;dwBuffSize))
      &lt;span style="color: #0000ff;"&gt;return&lt;/span&gt; SF_STATUS_REQ_ERROR;

    &lt;span style="color: #0000ff;"&gt;if&lt;/span&gt; (strcmp(szMethod, &lt;span style="color: #800000;"&gt;"PROPPATCH"&lt;/span&gt;) == 0)
    {
      &lt;span style="color: #008000;"&gt;// Send the HTTP status to the client.&lt;/span&gt;
      &lt;span style="color: #0000ff;"&gt;if&lt;/span&gt; (!pfc-&amp;gt;ServerSupportFunction(
        pfc, SF_REQ_SEND_RESPONSE_HEADER,&lt;span style="color: #800000;"&gt;"207 Multi-Status"&lt;/span&gt;, 0, 0))
        &lt;span style="color: #0000ff;"&gt;return&lt;/span&gt; SF_STATUS_REQ_ERROR;

      &lt;span style="color: #008000;"&gt;// Get the URL of the request.&lt;/span&gt;
      dwBuffSize = BUFFER_SIZE-1;
      &lt;span style="color: #0000ff;"&gt;if&lt;/span&gt; (!pfc-&amp;gt;GetServerVariable(
        pfc, &lt;span style="color: #800000;"&gt;"URL"&lt;/span&gt;, szRequestURL, &amp;amp;dwBuffSize))
        &lt;span style="color: #0000ff;"&gt;return&lt;/span&gt; SF_STATUS_REQ_ERROR;
        
      &lt;span style="color: #008000;"&gt;// Determine if request was sent over secure port.&lt;/span&gt;
      dwBuffSize = 2;
      &lt;span style="color: #0000ff;"&gt;if&lt;/span&gt; (!pfc-&amp;gt;GetServerVariable(
        pfc, &lt;span style="color: #800000;"&gt;"SERVER_PORT_SECURE"&lt;/span&gt;, szSecure, &amp;amp;dwBuffSize))
        &lt;span style="color: #0000ff;"&gt;return&lt;/span&gt; SF_STATUS_REQ_ERROR;
      fSecure = (szSecure[0] == &lt;span style="color: #800000;"&gt;'1'&lt;/span&gt;);
        
      &lt;span style="color: #008000;"&gt;// Get the server name.&lt;/span&gt;
      dwBuffSize = BUFFER_SIZE-1;
      &lt;span style="color: #0000ff;"&gt;if&lt;/span&gt; (!pfc-&amp;gt;GetServerVariable(
        pfc, &lt;span style="color: #800000;"&gt;"SERVER_NAME"&lt;/span&gt;, szServerName, &amp;amp;dwBuffSize))
        &lt;span style="color: #0000ff;"&gt;return&lt;/span&gt; SF_STATUS_REQ_ERROR;
        
      &lt;span style="color: #008000;"&gt;// Set the response URL.&lt;/span&gt;
      hr = StringCchPrintf(
        szResponseURL,BUFFER_SIZE-1, &lt;span style="color: #800000;"&gt;"http%s://%s/%s"&lt;/span&gt;,
        (fSecure ? &lt;span style="color: #800000;"&gt;"s"&lt;/span&gt; : &lt;span style="color: #800000;"&gt;""&lt;/span&gt;), szServerName, &amp;amp;szRequestURL[1]);
      &lt;span style="color: #008000;"&gt;// Exit with an error status if a failure occurs.&lt;/span&gt;
      &lt;span style="color: #0000ff;"&gt;if&lt;/span&gt; (FAILED(hr)) &lt;span style="color: #0000ff;"&gt;return&lt;/span&gt; SF_STATUS_REQ_ERROR;

      &lt;span style="color: #008000;"&gt;// Set the response body.&lt;/span&gt;
      hr = StringCchPrintf(
        szResponseXML,BUFFER_SIZE-1, &lt;span style="color: #800000;"&gt;"%s%s%s"&lt;/span&gt;,
        xmlpart1, szResponseURL, xmlpart2);
      &lt;span style="color: #008000;"&gt;// Exit with an error status if a failure occurs.&lt;/span&gt;
      &lt;span style="color: #0000ff;"&gt;if&lt;/span&gt; (FAILED(hr)) &lt;span style="color: #0000ff;"&gt;return&lt;/span&gt; SF_STATUS_REQ_ERROR;

      &lt;span style="color: #008000;"&gt;// Write the response body to the client.&lt;/span&gt;
      dwBuffSize = strlen(szResponseXML);
      &lt;span style="color: #0000ff;"&gt;if&lt;/span&gt; (!pfc-&amp;gt;WriteClient(
        pfc, szResponseXML, &amp;amp;dwBuffSize, 0))
        &lt;span style="color: #0000ff;"&gt;return&lt;/span&gt; SF_STATUS_REQ_ERROR;

      &lt;span style="color: #008000;"&gt;// Flag the request as completed.&lt;/span&gt;
      &lt;span style="color: #0000ff;"&gt;return&lt;/span&gt; SF_STATUS_REQ_FINISHED;
    }
  }
    
  &lt;span style="color: #0000ff;"&gt;return&lt;/span&gt; SF_STATUS_REQ_NEXT_NOTIFICATION;
}&lt;/pre&gt;
&lt;p&gt;I hope this helps. &lt;span style="white-space: nowrap;"&gt;;-]&lt;/span&gt;&lt;/p&gt;
(Cross-posted from http://blogs.msdn.com/robert_mcmurray/)&lt;img src="http://blogs.iis.net/aggbug.aspx?PostID=5068119" width="1" height="1"&gt;</description><cs:applicationKey>robert_mcmurray</cs:applicationKey><category domain="http://blogs.iis.net/robert_mcmurray/archive/tags/IIS/default.aspx">IIS</category><category domain="http://blogs.iis.net/robert_mcmurray/archive/tags/IIS+6/default.aspx">IIS 6</category><category domain="http://blogs.iis.net/robert_mcmurray/archive/tags/WebDAV/default.aspx">WebDAV</category></item><item><title>Things you still cant do with ASP.NET modules on IIS</title><link>http://blogs.iis.net/mvolo/archive/2013/04/23/things-you-still-cant-do-with-asp-net-modules-on-iis.aspx</link><pubDate>Wed, 24 Apr 2013 03:55:02 GMT</pubDate><guid isPermaLink="false">50bcf3b4-f6fe-4638-adff-0c150e922e99:5068008</guid><dc:creator>Mike Volodarsky</dc:creator><slash:comments>0</slash:comments><description>Even with the ASP.NET Integrated Pipeline on IIS, there are things you just can't do with ASP.NET modules. Here is a list of them, and why you should probably never do them. Read More......(&lt;a href="http://blogs.iis.net/mvolo/archive/2013/04/23/things-you-still-cant-do-with-asp-net-modules-on-iis.aspx"&gt;read more&lt;/a&gt;)&lt;img src="http://blogs.iis.net/aggbug.aspx?PostID=5068008" width="1" height="1"&gt;</description><cs:applicationKey>mvolo</cs:applicationKey><category domain="http://blogs.iis.net/mvolo/archive/tags/ASP.NET/default.aspx">ASP.NET</category><category domain="http://blogs.iis.net/mvolo/archive/tags/CodeProject/default.aspx">CodeProject</category><category domain="http://blogs.iis.net/mvolo/archive/tags/development/default.aspx">development</category><category domain="http://blogs.iis.net/mvolo/archive/tags/IIS/default.aspx">IIS</category></item><item><title>Some great WordPress optimization tips</title><link>http://bradkingsley.com/some-great-wordpress-optimization-tips/</link><pubDate>Mon, 22 Apr 2013 16:27:16 GMT</pubDate><guid isPermaLink="false">50bcf3b4-f6fe-4638-adff-0c150e922e99:5067851</guid><dc:creator>Ponderings - Various Topical Thoughts by Brad Kingsley » IIS</dc:creator><slash:comments>0</slash:comments><description>http://blog.newrelic.com/2013/02/07/web-performance-optimization-automation/...(&lt;a href="http://bradkingsley.com/some-great-wordpress-optimization-tips/"&gt;read more&lt;/a&gt;)&lt;img src="http://blogs.iis.net/aggbug.aspx?PostID=5067851" width="1" height="1"&gt;</description><cs:applicationKey>sbradk</cs:applicationKey><category domain="http://blogs.iis.net/sbradk/archive/tags/Cytanium/default.aspx">Cytanium</category><category domain="http://blogs.iis.net/sbradk/archive/tags/Hosting/default.aspx">Hosting</category><category domain="http://blogs.iis.net/sbradk/archive/tags/IIS/default.aspx">IIS</category><category domain="http://blogs.iis.net/sbradk/archive/tags/Linux/default.aspx">Linux</category><category domain="http://blogs.iis.net/sbradk/archive/tags/MySQL/default.aspx">MySQL</category><category domain="http://blogs.iis.net/sbradk/archive/tags/WordPress/default.aspx">WordPress</category></item><item><title>IIS Log FAQ - Logging Headers</title><link>http://blogs.iis.net/deanc/archive/2013/04/22/iis-log-faq-logging-headers.aspx</link><pubDate>Mon, 22 Apr 2013 14:00:00 GMT</pubDate><guid isPermaLink="false">50bcf3b4-f6fe-4638-adff-0c150e922e99:5067841</guid><dc:creator>DeanC</dc:creator><slash:comments>0</slash:comments><description>From time to time, I see some fairly common questions come across our internal discussion alias that we really don't do a good job of documenting externally, so I figured that as I see these frequently asked questions come up, I’d go ahead and post the answers here. I’ll start with one of the more common ones. A handful of times a year, I see something similar to the following asked: "Under what circumstances does IIS decide to re-write the logging headers in the IIS logs?" Always in reference to...(&lt;a href="http://blogs.iis.net/deanc/archive/2013/04/22/iis-log-faq-logging-headers.aspx"&gt;read more&lt;/a&gt;)&lt;img src="http://blogs.iis.net/aggbug.aspx?PostID=5067841" width="1" height="1"&gt;</description><cs:applicationKey>deanc</cs:applicationKey><category domain="http://blogs.iis.net/deanc/archive/tags/IIS+log+file+headers/default.aspx">IIS log file headers</category></item><item><title>You’re invited to help us celebrate an unlikely pairing in open source</title><link>http://blogs.iis.net/port25-php/archive/2013/04/16/you-re-invited-to-help-us-celebrate-an-unlikely-pairing-in-open-source.aspx</link><pubDate>Tue, 16 Apr 2013 20:00:00 GMT</pubDate><guid isPermaLink="false">50bcf3b4-f6fe-4638-adff-0c150e922e99:5067287</guid><dc:creator>Port25</dc:creator><slash:comments>0</slash:comments><description>We are just days away from reaching a significant milestone for our team and the open source and open standards communities: the first anniversary of Microsoft Open Technologies, Inc. (MS Open Tech) -- a wholly owned subsidiary of Microsoft. We can&amp;rsquo;t think of anyone better to celebrate with than YOU, the members of the open source and open standards community and technology industry who have helped us along on our adventure over the past year. We&amp;rsquo;d like to extend an open (pun intended...(&lt;a href="http://blogs.iis.net/port25-php/archive/2013/04/16/you-re-invited-to-help-us-celebrate-an-unlikely-pairing-in-open-source.aspx"&gt;read more&lt;/a&gt;)&lt;img src="http://blogs.iis.net/aggbug.aspx?PostID=5067287" width="1" height="1"&gt;</description><cs:applicationKey>port25-php</cs:applicationKey></item><item><title>Troubleshoot hanging requests on IIS in 3 steps</title><link>http://blogs.iis.net/mvolo/archive/2013/04/14/troubleshoot-hanging-requests-on-iis-in-3-steps.aspx</link><pubDate>Mon, 15 Apr 2013 00:38:17 GMT</pubDate><guid isPermaLink="false">50bcf3b4-f6fe-4638-adff-0c150e922e99:5067194</guid><dc:creator>Mike Volodarsky</dc:creator><slash:comments>0</slash:comments><description>Your users are complaining that the site is loading slowly, or you are making requests to your application and they are hanging. Here is my preferred method for diagnosing hanging requests on IIS servers: Read More......(&lt;a href="http://blogs.iis.net/mvolo/archive/2013/04/14/troubleshoot-hanging-requests-on-iis-in-3-steps.aspx"&gt;read more&lt;/a&gt;)&lt;img src="http://blogs.iis.net/aggbug.aspx?PostID=5067194" width="1" height="1"&gt;</description><cs:applicationKey>mvolo</cs:applicationKey><category domain="http://blogs.iis.net/mvolo/archive/tags/IIS/default.aspx">IIS</category><category domain="http://blogs.iis.net/mvolo/archive/tags/troubleshooting/default.aspx">troubleshooting</category></item><item><title>Using LogParser to Check Visitor IPs to a Certain Page</title><link>http://bradkingsley.com/using-logparser-to-check-visitor-ips-to-a-certain-page/</link><pubDate>Thu, 11 Apr 2013 12:02:45 GMT</pubDate><guid isPermaLink="false">50bcf3b4-f6fe-4638-adff-0c150e922e99:5065888</guid><dc:creator>Ponderings - Various Topical Thoughts by Brad Kingsley » IIS</dc:creator><slash:comments>0</slash:comments><description>Today I noticed we were getting an increasing amount of spam on one of our form pages. I was curious to see if all of the user IP addresses were the same (in which case I&amp;#8217;d just add them to &amp;#8230; Read more &amp;#187;...(&lt;a href="http://bradkingsley.com/using-logparser-to-check-visitor-ips-to-a-certain-page/"&gt;read more&lt;/a&gt;)&lt;img src="http://blogs.iis.net/aggbug.aspx?PostID=5065888" width="1" height="1"&gt;</description><cs:applicationKey>sbradk</cs:applicationKey><category domain="http://blogs.iis.net/sbradk/archive/tags/Cytanium/default.aspx">Cytanium</category><category domain="http://blogs.iis.net/sbradk/archive/tags/Hosting/default.aspx">Hosting</category><category domain="http://blogs.iis.net/sbradk/archive/tags/IIS/default.aspx">IIS</category><category domain="http://blogs.iis.net/sbradk/archive/tags/logparser/default.aspx">logparser</category><category domain="http://blogs.iis.net/sbradk/archive/tags/OrcsWeb/default.aspx">OrcsWeb</category><category domain="http://blogs.iis.net/sbradk/archive/tags/SysAdmin/default.aspx">SysAdmin</category></item><item><title>Getting Started With URL Rewrite</title><link>http://blogs.iis.net/rickbarber/archive/2013/04/10/getting-started-with-url-rewrite.aspx</link><pubDate>Wed, 10 Apr 2013 16:03:38 GMT</pubDate><guid isPermaLink="false">50bcf3b4-f6fe-4638-adff-0c150e922e99:5065833</guid><dc:creator>Rick Barber</dc:creator><slash:comments>0</slash:comments><description>As a server administrator, primarily focused on IIS, I like spending time in the IIS forums . I frequently see questions related to URL Rewrite rules so I wanted to make a guide for the plethora of information that is available on the Internet. The most obvious place to start is on www.iis.net itself. Section 5 of the site is dedicated to the URL rewrite module containing dozens of individual articles devoted to URL Rewrite. You can start here and find all kinds of helpful articles. If you want to...(&lt;a href="http://blogs.iis.net/rickbarber/archive/2013/04/10/getting-started-with-url-rewrite.aspx"&gt;read more&lt;/a&gt;)&lt;img src="http://blogs.iis.net/aggbug.aspx?PostID=5065833" width="1" height="1"&gt;</description><cs:applicationKey>rickbarber</cs:applicationKey><category domain="http://blogs.iis.net/rickbarber/archive/tags/URL+Rewrite/default.aspx">URL Rewrite</category></item><item><title>Manage IIS/ASP.NET applications easier with smart alerts</title><link>http://blogs.iis.net/mvolo/archive/2013/04/09/manage-iis-asp-net-applications-easier-with-smart-alerts.aspx</link><pubDate>Tue, 09 Apr 2013 21:34:04 GMT</pubDate><guid isPermaLink="false">50bcf3b4-f6fe-4638-adff-0c150e922e99:5065789</guid><dc:creator>Mike Volodarsky</dc:creator><slash:comments>0</slash:comments><description>Its been a big month for LeanSentry! We've released several big features to help make supporting and troubleshooting IIS/ASP.NET apps way easier, including smart alerts, automatic error highlighting, server diagnostics, and more. Read on for the juicy Read More......(&lt;a href="http://blogs.iis.net/mvolo/archive/2013/04/09/manage-iis-asp-net-applications-easier-with-smart-alerts.aspx"&gt;read more&lt;/a&gt;)&lt;img src="http://blogs.iis.net/aggbug.aspx?PostID=5065789" width="1" height="1"&gt;</description><cs:applicationKey>mvolo</cs:applicationKey><category domain="http://blogs.iis.net/mvolo/archive/tags/ASP.NET/default.aspx">ASP.NET</category><category domain="http://blogs.iis.net/mvolo/archive/tags/IIS/default.aspx">IIS</category><category domain="http://blogs.iis.net/mvolo/archive/tags/LeanSentry/default.aspx">LeanSentry</category><category domain="http://blogs.iis.net/mvolo/archive/tags/troubleshooting/default.aspx">troubleshooting</category></item><item><title>Why is the IIS default app pool recycle set to 1740 minutes?</title><link>http://blogs.iis.net/owscott/archive/2013/04/06/why-is-the-iis-default-app-pool-recycle-set-to-1740-minutes.aspx</link><pubDate>Sat, 06 Apr 2013 15:06:23 GMT</pubDate><guid isPermaLink="false">50bcf3b4-f6fe-4638-adff-0c150e922e99:5065610</guid><dc:creator>Scott Forsyth's Blog : IIS</dc:creator><slash:comments>0</slash:comments><description>Microsoft IIS Server has what appears to be an odd default for the application pool recycle time. It defaults to 1740 minutes, which is exactly 29 hours. I’ve always been a bit curious where that default came from. If you’re like me, you may have wondered Read More......(&lt;a href="http://blogs.iis.net/owscott/archive/2013/04/06/why-is-the-iis-default-app-pool-recycle-set-to-1740-minutes.aspx"&gt;read more&lt;/a&gt;)&lt;img src="http://blogs.iis.net/aggbug.aspx?PostID=5065610" width="1" height="1"&gt;</description><cs:applicationKey>owscott</cs:applicationKey><category domain="http://blogs.iis.net/owscott/archive/tags/IIS/default.aspx">IIS</category><category domain="http://blogs.iis.net/owscott/archive/tags/IIS7/default.aspx">IIS7</category><category domain="http://blogs.iis.net/owscott/archive/tags/IIS8/default.aspx">IIS8</category><category domain="http://blogs.iis.net/owscott/archive/tags/Performance+Tuning/default.aspx">Performance Tuning</category><category domain="http://blogs.iis.net/owscott/archive/tags/Windows+Server/default.aspx">Windows Server</category></item><item><title>Installing SQL Server Native Client 10.0</title><link>http://blogs.iis.net/rickbarber/archive/2013/04/05/installing-sql-server-native-client-10-0.aspx</link><pubDate>Fri, 05 Apr 2013 17:01:08 GMT</pubDate><guid isPermaLink="false">50bcf3b4-f6fe-4638-adff-0c150e922e99:5065534</guid><dc:creator>Rick Barber</dc:creator><slash:comments>0</slash:comments><description>I came across an issue today where a website had a dependency on the SQL Server Native Client 10.0, which is part of SQL Server 2008. A recent upgrade to SQL Server 2012 caused SQL Server Native Client 11.0 to be installed and version 10.0 to be uninstalled. Different versions of the Native Client can be installed side-by-side, and fortunately there is also a redistributable installation. The documentation shows the redistributable located at %CD%\Setup\ on the installation disk. That is great if...(&lt;a href="http://blogs.iis.net/rickbarber/archive/2013/04/05/installing-sql-server-native-client-10-0.aspx"&gt;read more&lt;/a&gt;)&lt;img src="http://blogs.iis.net/aggbug.aspx?PostID=5065534" width="1" height="1"&gt;</description><cs:applicationKey>rickbarber</cs:applicationKey><category domain="http://blogs.iis.net/rickbarber/archive/tags/Administration/default.aspx">Administration</category><category domain="http://blogs.iis.net/rickbarber/archive/tags/SQL/default.aspx">SQL</category><category domain="http://blogs.iis.net/rickbarber/archive/tags/SQL+Native+Client/default.aspx">SQL Native Client</category></item><item><title>Adding Custom FTP Providers with the IIS Configuration Editor - Part 1</title><link>http://blogs.iis.net/robert_mcmurray/archive/2013/03/31/adding-custom-ftp-providers-with-the-iis-configuration-editor-part-1.aspx</link><pubDate>Mon, 01 Apr 2013 06:03:34 GMT</pubDate><guid isPermaLink="false">50bcf3b4-f6fe-4638-adff-0c150e922e99:5065282</guid><dc:creator>robmcm</dc:creator><slash:comments>0</slash:comments><description>&lt;p&gt;I've written a lot of walkthroughs and blog posts about creating custom FTP providers over the past several years, and I usually include instructions for adding these custom providers to IIS. When you create a custom FTP authentication provider, IIS has a user interface for adding that provider to FTP. But if you are adding a custom home directory or logging provider, there is no dedicated user interface for adding those types of FTP providers. In addition, if you create a custom FTP provider that requires settings that are stored in your IIS configuration, there is no user interface to add or manage those settings.&lt;/p&gt;
&lt;p&gt;With this in mind, I include instructions in my blogs and walkthroughs that describe how to add those type of providers by using AppCmd.exe from a command line. For example, if you take a look at my &lt;em&gt;&lt;a href="http://www.iis.net/learn/develop/developing-for-ftp/how-to-use-managed-code-c-to-create-an-ftp-authentication-and-authorization-provider-using-an-xml-database" target="_blank"&gt;How to Use Managed Code (C#) to Create an FTP Authentication and Authorization Provider using an XML Database&lt;/a&gt;&lt;/em&gt; walkthrough, I include the following instructions:&lt;/p&gt;
&lt;p style="margin-left: 20px; font-size: 12pt; color: #333; background-color: fff;"&gt;&lt;strong&gt;Adding the Provider&lt;/strong&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li style="margin-left: 20px; font-size: 9pt; color: #333; background-color: fff;"&gt;Determine the assembly information for the extensibility provider:
&lt;ul&gt;
&lt;li style="margin-left: 20px; font-size: 9pt; color: #333; background-color: fff;"&gt;In Windows Explorer, open your "C:\Windows\assembly" path, where C: is your operating system drive.&lt;/li&gt;
&lt;li style="margin-left: 20px; font-size: 9pt; color: #333; background-color: fff;"&gt;Locate the &lt;strong&gt;FtpXmlAuthorization&lt;/strong&gt; assembly.&lt;/li&gt;
&lt;li style="margin-left: 20px; font-size: 9pt; color: #333; background-color: fff;"&gt;Right-click the assembly, and then click &lt;strong&gt;Properties&lt;/strong&gt;.&lt;/li&gt;
&lt;li style="margin-left: 20px; font-size: 9pt; color: #333; background-color: fff;"&gt;Copy the &lt;strong&gt;Culture&lt;/strong&gt; value; for example: &lt;strong&gt;Neutral&lt;/strong&gt;.&lt;/li&gt;
&lt;li style="margin-left: 20px; font-size: 9pt; color: #333; background-color: fff;"&gt;Copy the &lt;strong&gt;Version&lt;/strong&gt; number; for example: &lt;strong&gt;1.0.0.0&lt;/strong&gt;.&lt;/li&gt;
&lt;li style="margin-left: 20px; font-size: 9pt; color: #333; background-color: fff;"&gt;Copy the &lt;strong&gt;Public Key Token&lt;/strong&gt; value; for example: &lt;strong&gt;426f62526f636b73&lt;/strong&gt;.&lt;/li&gt;
&lt;li style="margin-left: 20px; font-size: 9pt; color: #333; background-color: fff;"&gt;Click &lt;strong&gt;Cancel&lt;/strong&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li style="margin-left: 20px; font-size: 9pt; color: #333; background-color: fff;"&gt;Using the information from the previous steps, add the extensibility provider to the global list of FTP providers and configure the options for the provider:
&lt;ul&gt;
&lt;li style="margin-left: 20px; font-size: 9pt; color: #333; background-color: fff;"&gt;At the moment there is no user interface that enables you to add properties for custom authentication or authorization modules, so you will have to use the following command line:&lt;br /&gt; &lt;br /&gt; &lt;code&gt;cd %SystemRoot%\System32\Inetsrv&lt;br /&gt; &lt;br /&gt; appcmd.exe set config -section:system.ftpServer/providerDefinitions /+"[name='FtpXmlAuthorization',type='FtpXmlAuthorization,FtpXmlAuthorization,version=1.0.0.0,Culture=neutral,PublicKeyToken=426f62526f636b73']" /commit:apphost&lt;br /&gt; &lt;br /&gt; appcmd.exe set config -section:system.ftpServer/providerDefinitions /+"activation.[name='FtpXmlAuthorization']" /commit:apphost&lt;br /&gt; &lt;br /&gt; appcmd.exe set config -section:system.ftpServer/providerDefinitions /+"activation.[name='FtpXmlAuthorization'].[key='xmlFileName',value='C:\Inetpub\XmlSample\Users.xml']" /commit:apphost&lt;/code&gt;&lt;/li&gt;
&lt;li style="margin-left: 20px; font-size: 9pt; color: #333; background-color: fff;"&gt;&lt;strong&gt;Note&lt;/strong&gt;: The file path that you specify in the &lt;em&gt;xmlFileName&lt;/em&gt; attribute must match the path where you saved the "Users.xml" file on your computer in the earlier in this walkthrough.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;This example adds a custom FTP provider, and then it adds a custom setting for that provider that is stored in your IIS configuration settings.&lt;/p&gt;
&lt;p&gt;That being said, there is actually a way to add custom FTP providers with settings like the ones that I have just described through the IIS interface by using the &lt;strong&gt;IIS Configuration Editor&lt;/strong&gt;. This feature was first available through the &lt;a href="http://www.iis.net/downloads/microsoft/administration-pack" target="_blank"&gt;IIS Administration Pack&lt;/a&gt; for IIS 7.0, and is built-in for IIS 7.5 and IIS 8.0.&lt;/p&gt;
&lt;p&gt;Before I continue, if would probably be prudent to take a look at the settings that we are trying to add, because these settings might help you to understand the rest of steps in this blog. Here is an example from my applicationhost.config file for three custom FTP authentication providers; the first two providers are installed with the FTP service, and the third provider is a custom provider that I created with a single provider-specific configuration setting:&lt;/p&gt;
&lt;p style="margin-left: 20px; color: black; background-color: #ffffff;"&gt;&lt;code&gt;&lt;span style="color: #0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;system.ftpServer&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt; &amp;nbsp; &lt;span style="color: #0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;providerDefinitions&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: #0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;add&lt;/span&gt; &lt;span style="color: #ff0000;"&gt;name&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="IisManagerAuth"&lt;/span&gt; &lt;span style="color: #ff0000;"&gt;type&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="Microsoft.Web.FtpServer.Security.IisManagerAuthenticationProvider, Microsoft.Web.FtpServer, version=7.5.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;/&amp;gt;&lt;/span&gt;&lt;br /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: #0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;add&lt;/span&gt; &lt;span style="color: #ff0000;"&gt;name&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="AspNetAuth"&lt;/span&gt; &lt;span style="color: #ff0000;"&gt;type&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="Microsoft.Web.FtpServer.Security.AspNetFtpMembershipProvider, Microsoft.Web.FtpServer, version=7.5.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;/&amp;gt;&lt;/span&gt;&lt;br /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: #0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;add&lt;/span&gt; &lt;span style="color: #ff0000;"&gt;name&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="FtpXmlAuthorization"&lt;/span&gt; &lt;span style="color: #ff0000;"&gt;type&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="FtpXmlAuthorization, FtpXmlAuthorization, version=1.0.0.0, Culture=neutral, PublicKeyToken=426f62526f636b73"&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;/&amp;gt;&lt;/span&gt;&lt;br /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: #0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;activation&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: #0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;providerData&lt;/span&gt; &lt;span style="color: #ff0000;"&gt;name&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="FtpXmlAuthorization"&amp;gt;&lt;/span&gt;&lt;br /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: #0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;add&lt;/span&gt; &lt;span style="color: #ff0000;"&gt;key&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="xmlFileName"&lt;/span&gt; &lt;span style="color: #ff0000;"&gt;value&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="C:\inetpub\FtpUsers\Users.xml"&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;/&amp;gt;&lt;/span&gt;&lt;br /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: #0000ff;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000;"&gt;providerData&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: #0000ff;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000;"&gt;activation&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt; &amp;nbsp; &lt;span style="color: #0000ff;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000;"&gt;providerDefinitions&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt; &lt;span style="color: #0000ff;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000;"&gt;system.ftpServer&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;With that in mind, in part 1 of this blog series, I will show you how to use the IIS Configuration Editor to add a custom FTP provider with provider-specific configuration settings.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Step 1&lt;/strong&gt; - Open the IIS Manager and click on the &lt;strong&gt;Configuration Editor&lt;/strong&gt; at feature the server level:&lt;/p&gt;
&lt;p style="margin-left: 20px;"&gt;&lt;a href="https://bxs1ug.bn1.livefilestore.com/y1pQvThdGUL69bzTfejtWrotYf19S9U8EY_B0pZZGyFMV5j4byqCs79COKdwI8q8H5VbZ6SC_DLwtJM1gGrw_1OoAp1LObGEK9w/AddingCustomProviders01.png" target="_blank"&gt;&lt;img src="https://bxs1ug.bn1.livefilestore.com/y1pQvThdGUL69bzTfejtWrotYf19S9U8EY_B0pZZGyFMV5j4byqCs79COKdwI8q8H5VbZ6SC_DLwtJM1gGrw_1OoAp1LObGEK9w/AddingCustomProviders01.png" alt="" width="512" height="384" border="2" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Step 2&lt;/strong&gt; - Click the &lt;strong&gt;Section&lt;/strong&gt; drop-down menu, expand the the &lt;strong&gt;system.ftpServer&lt;/strong&gt; collection, and then highlight the &lt;strong&gt;providerDefinitions&lt;/strong&gt; node:&lt;/p&gt;
&lt;p style="margin-left: 20px;"&gt;&lt;a href="https://bxs1ug.bn1.livefilestore.com/y1pn0X0XoiIJBEZlxXNvRMt1TOpxjW-aYazuf7Y5IlRvnpKC2rmEWC9w98WQ2jPWUJo9jvNIAOYPxGSxcSGSB_JZtldrs8g3kZE/AddingCustomProviders02.png" target="_blank"&gt;&lt;img src="https://bxs1ug.bn1.livefilestore.com/y1pn0X0XoiIJBEZlxXNvRMt1TOpxjW-aYazuf7Y5IlRvnpKC2rmEWC9w98WQ2jPWUJo9jvNIAOYPxGSxcSGSB_JZtldrs8g3kZE/AddingCustomProviders02.png" alt="" width="512" height="384" border="2" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Step 3&lt;/strong&gt; - A default installation IIS with the FTP service should show a &lt;strong&gt;Count&lt;/strong&gt; of 2 providers in the &lt;strong&gt;Collection&lt;/strong&gt; row, and no settings in the &lt;strong&gt;activation&lt;/strong&gt; row:&lt;/p&gt;
&lt;p style="margin-left: 20px;"&gt;&lt;a href="https://bxs1ug.bn1.livefilestore.com/y1pyd-UciuymQRM2OvL32V5ciC4HL8CfvsMX3Th9dazwEu1U6Hf0w62qYFTYf4I5Am900i6E3Y-pfdnJLe85kj3E6m3epvoeaHw/AddingCustomProviders03.png" target="_blank"&gt;&lt;img src="https://bxs1ug.bn1.livefilestore.com/y1pyd-UciuymQRM2OvL32V5ciC4HL8CfvsMX3Th9dazwEu1U6Hf0w62qYFTYf4I5Am900i6E3Y-pfdnJLe85kj3E6m3epvoeaHw/AddingCustomProviders03.png" alt="" width="512" height="384" border="2" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Step 4&lt;/strong&gt; - If you click on the &lt;strong&gt;Collection&lt;/strong&gt; row, an ellipsis &lt;strong&gt;[...]&lt;/strong&gt; will appear, and when you click that, IIS will display the &lt;strong&gt;Collection Editor&lt;/strong&gt; dialog for FTP providers. By default you should see just the two built-in providers for the &lt;strong&gt;IisManagerAuth&lt;/strong&gt; and &lt;strong&gt;AspNetAuth&lt;/strong&gt; providers:&lt;/p&gt;
&lt;p style="margin-left: 20px;"&gt;&lt;a href="https://bxs1ug.bn1.livefilestore.com/y1pgLH_JidYyZjNck69nmdjCnPzWui9-BuUeMRfnw15UVP5HSabgskBheV2p5kAz3xc01sZwMMStIcnjjU1tZ3rBqJMZ86B5s0u/AddingCustomProviders04.png" target="_blank"&gt;&lt;img src="https://bxs1ug.bn1.livefilestore.com/y1pgLH_JidYyZjNck69nmdjCnPzWui9-BuUeMRfnw15UVP5HSabgskBheV2p5kAz3xc01sZwMMStIcnjjU1tZ3rBqJMZ86B5s0u/AddingCustomProviders04.png" alt="" width="512" height="280" border="2" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Step 5&lt;/strong&gt; - When you click &lt;strong&gt;Add&lt;/strong&gt; in the &lt;strong&gt;Actions&lt;/strong&gt; pane, you can enter the registration information for your provider. At a minimum you must provide a &lt;strong&gt;name&lt;/strong&gt; for your provider, but you will need to enter either the &lt;strong&gt;clsid&lt;/strong&gt; for a COM-based provider or the &lt;strong&gt;type&lt;/strong&gt; for a managed-code provider:&lt;/p&gt;
&lt;p style="margin-left: 20px;"&gt;&lt;a href="https://bxs1ug.bn1.livefilestore.com/y1pedn5d4wH3RWYRIYtSoVL5S8w9BUOBRbFQ-Q37cMDA97HBi1hNIbJc4b1CH1zPlekGnYjCCWMvEsE8BDlebK5Yy23N_UgML6j/AddingCustomProviders05.png" target="_blank"&gt;&lt;img src="https://bxs1ug.bn1.livefilestore.com/y1pedn5d4wH3RWYRIYtSoVL5S8w9BUOBRbFQ-Q37cMDA97HBi1hNIbJc4b1CH1zPlekGnYjCCWMvEsE8BDlebK5Yy23N_UgML6j/AddingCustomProviders05.png" alt="" width="512" height="280" border="2" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Step 6&lt;/strong&gt; - When you close the &lt;strong&gt;Collection Editor&lt;/strong&gt; dialog, the &lt;strong&gt;Count&lt;/strong&gt; of providers in the &lt;strong&gt;Collection&lt;/strong&gt; should now reflect the provider that we just added; click &lt;strong&gt;Apply&lt;/strong&gt; in the &lt;strong&gt;Actions&lt;/strong&gt; pane to save the changes:&lt;/p&gt;
&lt;p style="margin-left: 20px;"&gt;&lt;a href="https://bxs1ug.bn1.livefilestore.com/y1ppJvN3Cu_0iih85wKIZktysZQrP3LTgik2j0liJIsp8D5o732ntRdB_AaG2r6baxRxByqNDS_u7TNuZI_l8Jg7D36SR4RfN8-/AddingCustomProviders06.png" target="_blank"&gt;&lt;img src="https://bxs1ug.bn1.livefilestore.com/y1ppJvN3Cu_0iih85wKIZktysZQrP3LTgik2j0liJIsp8D5o732ntRdB_AaG2r6baxRxByqNDS_u7TNuZI_l8Jg7D36SR4RfN8-/AddingCustomProviders06.png" alt="" width="512" height="384" border="2" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Step 7&lt;/strong&gt; - If you click on the &lt;strong&gt;activation&lt;/strong&gt; row, an ellipsis &lt;strong&gt;[...]&lt;/strong&gt; will appear, and when you click that, IIS will display the &lt;strong&gt;Collection Editor&lt;/strong&gt; dialog for provider data; this is where you will enter provider-specific settings. When you click &lt;strong&gt;Add&lt;/strong&gt; in the &lt;strong&gt;Actions&lt;/strong&gt; pane, you must specify the &lt;strong&gt;name&lt;/strong&gt; for your provider's settings, and this name &lt;span style="text-decoration: underline;"&gt;&lt;strong&gt;&lt;em&gt;must&lt;/em&gt;&lt;/strong&gt;&lt;/span&gt; match the exact name that you provided in &lt;strong&gt;Step 5&lt;/strong&gt; earlier:&lt;/p&gt;
&lt;p style="margin-left: 20px;"&gt;&lt;a href="https://bxs1ug.bn1.livefilestore.com/y1pgzm0CA6oMvkdy12bvcQcFdcCASWuvLPYkRMzcaCBs2EgJzmaOYUeF_8yalrPNKwepQ8-jpl1VO27PQa8VVTRhcavzGzCgjai/AddingCustomProviders07.png" target="_blank"&gt;&lt;img src="https://bxs1ug.bn1.livefilestore.com/y1pgzm0CA6oMvkdy12bvcQcFdcCASWuvLPYkRMzcaCBs2EgJzmaOYUeF_8yalrPNKwepQ8-jpl1VO27PQa8VVTRhcavzGzCgjai/AddingCustomProviders07.png" alt="" width="512" height="280" border="2" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Step 8&lt;/strong&gt; - If you click on the &lt;strong&gt;Collection&lt;/strong&gt; row, an ellipsis &lt;strong&gt;[...]&lt;/strong&gt; will appear, and when you click that, IIS will display the &lt;strong&gt;Collection Editor&lt;/strong&gt; dialog for the activation data for an FTP provider. At a minimum you must provide a &lt;strong&gt;key&lt;/strong&gt; for your provider, which will depend on the settings that your provider expects to retrieve from your configuration settings. (For example, in the XML file that I provided earlier, my &lt;strong&gt;&lt;code&gt;FtpXmlAuthorization&lt;/code&gt;&lt;/strong&gt; provider expects to retrieve the path to an XML that contains a list of users, roles, and authorization rules.) You also need to enter the either the &lt;strong&gt;value&lt;/strong&gt; or &lt;strong&gt;encryptedValue&lt;/strong&gt; for your provider; although you can specify either setting, should generally specify the &lt;strong&gt;value&lt;/strong&gt; when the settings are not sensitive in nature, and specify the &lt;strong&gt;encryptedValue&lt;/strong&gt; for settings like usernames and passwords:&lt;/p&gt;
&lt;p style="margin-left: 20px;"&gt;&lt;a href="https://bxs1ug.bn1.livefilestore.com/y1pEs3JQDlxThYKp5bDsnc0dzS65TBAZZVfZ4gsyCNE0lErDKxzhg_NvO1jUsJ7FCN7C5Tcah1k5MiluQzGRX_LA9Cmgod55Cpf/AddingCustomProviders08.png" target="_blank"&gt;&lt;img src="https://bxs1ug.bn1.livefilestore.com/y1pEs3JQDlxThYKp5bDsnc0dzS65TBAZZVfZ4gsyCNE0lErDKxzhg_NvO1jUsJ7FCN7C5Tcah1k5MiluQzGRX_LA9Cmgod55Cpf/AddingCustomProviders08.png" alt="" width="512" height="280" border="2" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Step 9&lt;/strong&gt; - When you close the &lt;strong&gt;Collection Editor&lt;/strong&gt; dialog for the activation data, the &lt;strong&gt;Count&lt;/strong&gt; of key/value pairs in the &lt;strong&gt;Collection&lt;/strong&gt; should now reflect the value that we just added:&lt;/p&gt;
&lt;p style="margin-left: 20px;"&gt;&lt;a href="https://bxs1ug.bn1.livefilestore.com/y1pplklHsjaVzJV1aRhGqhKDphxLAMJRfqpUu0Qg5Xve-RPMYGG0iY-thFEc3umLYjC4KRlflPCbNYjwb9pBEstqXg2aGuFqJpp/AddingCustomProviders09.png" target="_blank"&gt;&lt;img src="https://bxs1ug.bn1.livefilestore.com/y1pplklHsjaVzJV1aRhGqhKDphxLAMJRfqpUu0Qg5Xve-RPMYGG0iY-thFEc3umLYjC4KRlflPCbNYjwb9pBEstqXg2aGuFqJpp/AddingCustomProviders09.png" alt="" width="512" height="280" border="2" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Step 10&lt;/strong&gt; - When you close the &lt;strong&gt;Collection Editor&lt;/strong&gt; dialog for the provider data, the &lt;strong&gt;Count&lt;/strong&gt; of provider data settings in the &lt;strong&gt;activation&lt;/strong&gt; row should now reflect the custom settings that we just added; click &lt;strong&gt;Apply&lt;/strong&gt; in the &lt;strong&gt;Actions&lt;/strong&gt; pane to save the changes:&lt;/p&gt;
&lt;p style="margin-left: 20px;"&gt;&lt;a href="https://bxs1ug.bn1.livefilestore.com/y1p3A004-sY0ZvbJyVYhxhBB6vEW62uaDO38yo3Xu9QQ8niSt3ZAwTUByhaMXKcS6Ou_X-PUhk35N41LMbtkkuD2BBgqHri8pDe/AddingCustomProviders10.png" target="_blank"&gt;&lt;img src="https://bxs1ug.bn1.livefilestore.com/y1p3A004-sY0ZvbJyVYhxhBB6vEW62uaDO38yo3Xu9QQ8niSt3ZAwTUByhaMXKcS6Ou_X-PUhk35N41LMbtkkuD2BBgqHri8pDe/AddingCustomProviders10.png" alt="" width="512" height="384" border="2" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;That's all that there is to adding a custom FTP provider with provider-specific settings; I admit that it might seem like a lot of steps until you get the hang of it.&lt;/p&gt;
&lt;p&gt;In the next blog for this series, I will show you how to add custom providers to FTP sites by using the IIS Configuration Editor.&lt;/p&gt;
(Cross-posted from http://blogs.msdn.com/robert_mcmurray/)&lt;img src="http://blogs.iis.net/aggbug.aspx?PostID=5065282" width="1" height="1"&gt;</description><cs:applicationKey>robert_mcmurray</cs:applicationKey><category domain="http://blogs.iis.net/robert_mcmurray/archive/tags/Extensibility/default.aspx">Extensibility</category><category domain="http://blogs.iis.net/robert_mcmurray/archive/tags/FTP/default.aspx">FTP</category><category domain="http://blogs.iis.net/robert_mcmurray/archive/tags/IIS/default.aspx">IIS</category></item></channel></rss>