Como Adicionar Definições de Provedor FTP <add>
Visão geral
O elemento <add>
do elemento <providerDefinitions>
especifica as informações de registro para um provedor de código gerenciado ou código nativo (COM).
A partir do FTP 7.5, o serviço FTP dá suporte à extensibilidade para autenticação personalizada e funções, log e pesquisas de diretório residencial. Ao criar um provedor de extensibilidade, você deve primeiro registrá-lo no GAC (Cache de Assembly Global do .NET), para provedores de código gerenciado, ou no registro do sistema, para provedores com código nativo (COM). Para obter informações adicionais sobre como criar provedores personalizados FTP, confira a seguinte seção no site IIS.net da Microsoft:
Compatibilidade
Versão | Observações |
---|---|
IIS 10.0 | O elemento <add> não foi modificado no IIS 10.0. |
IIS 8.5 | O elemento <add> não foi modificado no IIS 8.5. |
IIS 8.0 | O elemento <add> não foi modificado no IIS 8.0. |
IIS 7.5 | O elemento <add> do elemento <providerDefinitions> é fornecido como um recurso do IIS 7.5. |
IIS 7.0 | O elemento <add> do elemento <providerDefinitions> foi introduzido no FTP 7.0, que era um download separado para o IIS 7.0. |
IIS 6,0 | O serviço FTP no IIS 6.0 não deu suporte à extensibilidade. |
Observação
Os serviços FTP 7.0 e FTP 7.5 eram fornecidos fora de banda para o IIS 7.0, o que exigia o download e a instalação de módulos do seguinte URL:
Com o Windows 7 e o Windows Server 2008 R2, o serviço FTP 7.5 é fornecido como um recurso para o IIS 7.5 e, portanto, o download do serviço FTP não é mais necessário.
Instalação
Para dar suporte à publicação FTP para seu servidor Web, você deve instalar o serviço FTP. Para fazer isso, execute as etapas a seguir.
Windows Server 2012 R2 ou Windows Server 2012
Na barra de tarefas, clique em Gerenciador do Servidor.
No Gerenciador do Servidor, clique no menu Gerenciar e clique em Adicionar Funções e Recursos.
No assistente Adicionar Funções e Recursos, clique em Avançar. Selecione o tipo de instalação e clique em Avançar. Selecione o servidor de destino e clique em Avançar.
Na página Funções de servidor, expanda Servidor Web (IIS) e, em seguida, selecione Servidor FTP.
Observação
Para dar suporte à autenticação do ASP.Membership ou do Gerenciador do IIS para o serviço FTP, você precisará selecionar a Extensibilidade de FTP além do Serviço FTP.
.
Selecione Avançar e, em seguida, na página Selecionar recursos, selecione Avançar novamente.
Na página Confirmar seleções de instalação, clique em Instalar.
Na página Resultados , clique em Fechar.
Windows 8 ou Windows 8.1
Na tela Iniciar, mova o ponteiro até o canto inferior esquerdo, clique com o botão direito do mouse no botão Iniciar e clique em Painel de Controle.
Em Painel de Controle, clique em Programas e Recursos e clique em Ativar ou desativar recursos do Windows.
Expanda Serviços de Informações da Internet e selecione Servidor FTP.
Observação
Para dar suporte à autenticação do ASP.Membership ou do Gerenciador do IIS para o serviço FTP, você também precisará selecionar Extensibilidade de FTP.
Clique em OK.
Clique em Fechar.
Windows Server 2008 R2
Na barra de tarefas, clique em Iniciar, vá para Ferramentas Administrativas e clique em Gerenciador do Servidor.
No painel de hierarquia do Gerenciador do Servidor, expanda Funções e clique em Servidor Web (IIS).
No painel Servidor Web (IIS), role até a seção Serviços de Função e clique em Adicionar Serviços de Função.
Na página Selecionar Serviços de Função do Assistente para Adicionar Serviços de Função, expanda Servidor FTP.
Selecione Serviço FTP.
Observação
Para dar suporte à autenticação do ASP.Membership ou do Gerenciador do IIS para o serviço FTP, você também precisará selecionar Extensibilidade de FTP.
Clique em Avançar.
Na página Confirmar Seleções de Instalação, clique em Instalar.
Na página Resultados , clique em Fechar.
Windows 7
Na barra de tarefas, clique em Iniciar e, depois, em Painel de Controle.
Em Painel de Controle, clique em Programas e Recursos e clique em Ativar ou desativar Recursos do Windows.
Expanda Serviços de Informações da Internet e, em seguida, Servidor FTP.
Selecione Serviço FTP.
Observação
Para dar suporte à autenticação do ASP.Membership ou do Gerenciador do IIS para o serviço FTP, você também precisará selecionar Extensibilidade de FTP.
Clique em OK.
Windows Server 2008 ou Windows Vista
Baixe o pacote de instalação do seguinte URL:
Siga as instruções no seguinte passo a passo para instalar o serviço FTP:
Instruções
Como adicionar um provedor de autenticação personalizada de código gerenciado para um site FTP
Observação
Essas etapas pressupõem que um provedor de autenticação FTP personalizado já foi instalado e registrado no GAC (Cache de Assembly Global) do servidor. Para obter mais informações sobre como registrar assemblies gerenciados, consulte o tópico Ferramenta de Cache de Assembly Global (Gacutil.exe) no site do MSDN da Microsoft.
Determine as informações do assembly para o provedor de extensibilidade:
- No Windows Explorer, abra o caminho "C:\Windows\assembly", onde C: é a unidade do sistema operacional.
- Localize o assembly. Por exemplo, FtpAuthenticationDemo.
- Clique com o botão direito do mouse no assembly e em Propriedades.
- Copie o valor de Cultura. Por exemplo, Neutro.
- Copie o número de Versão. Por exemplo: 1.0.0.0.
- Copie o valor do Token de Chave Pública. Por exemplo, 426f62526f636b73.
- Clique em Cancelar.
Adicione o provedor de extensibilidade à lista global de provedores de autenticação FTP:
- Abra o Gerenciador do IIS (Serviços de Informações da Internet) .
- Clique no nome do computador no painel Conexões.
- Clique duas vezes na Autenticação FTP na janela principal.
- Selecione Provedores Personalizados no painel Ações.
- Clique em Registrar.
- Insira um nome amigável para o provedor de autenticação personalizado na caixa Nome. Por exemplo, FtpAuthenticationDemo.
- Clique em Provedor Gerenciado (.NET).
- Insira as informações do assembly para o provedor de extensibilidade usando as informações copiadas antes. Por exemplo:
FtpAuthentication.FtpAuthDemo, FtpAuthenticationDemo, version=1.0.0.0, Culture=neutral, PublicKeyToken=426f62526f636b73 - Clique em OK.
- Desmarque a caixa de seleção do provedor de autenticação personalizado na lista de provedores.
- Clique em OK.
Adicione o provedor de autenticação personalizada para um site FTP:
- Abra um site FTP no Gerenciador do IIS (Serviços de Informações da Internet).
- Clique duas vezes na Autenticação FTP na janela principal.
- Selecione Provedores Personalizados no painel Ações.
- Marque para selecionar e habilitar o provedor de autenticação personalizado na lista de provedores.
- Clique em OK.
Configuração
O elemento <add>
do elemento <providerDefinitions>
é configurado no nível global no ApplicationHost.config.
Atributos
Atributo | Descrição |
---|---|
name |
Atributo de cadeia de caracteres obrigatório. Especifica o nome amigável de um provedor personalizado. Nenhum valor padrão. |
type |
Atributo de cadeia de caracteres opcional. Especifica o tipo para um provedor de código gerenciado. Nenhum valor padrão. |
clsid |
Atributo de cadeia de caracteres opcional. Especifica a ID da classe COM para um provedor de código nativo. Nenhum valor padrão. |
Elementos filho
Nenhum.
Exemplo de configuração
O exemplo a seguir ilustra várias configurações no elemento <system.ftpServer>
global para um servidor. Mais especificamente, as configurações neste exemplo demonstram como:
Habilite o cache de credenciais FTP e especifique um tempo limite de 10 minutos (600 segundos).
Configure a porta baixa como 5000 e a porta alta como 6000 para comunicações de canal de dados.
Habilite o registro em log e especifique que os arquivos de log serão mantidos por site e que os arquivos de log serão girados diariamente por hora UTC.
Especifique um provedor FTP personalizado e especifique um parâmetro personalizado para esse provedor.
Especifique restrições de IP globais que permitem o acesso FTP do host local e negam acesso ao bloco 169.254.0.0 a 169.254.255.255 de endereços IP.
Configure a filtragem de solicitações com as seguintes opções:
- Bloqueie o acesso FTP ao diretório virtual _vti_bin, que é usado com as Extensões de Servidor do FrontPage.
- Bloqueie vários tipos de arquivo associados a executáveis.
- Especifique 100 MB como o tamanho máximo do arquivo.
Adicione uma regra de autorização global que permite o acesso para o grupo de administradores.
Especifique que a sintaxe de nome de domínio pode ser usada para nomes do host virtual FTP.
<system.ftpServer>
<caching>
<credentialsCache enabled="true" flushInterval="600" />
</caching>
<firewallSupport lowDataChannelPort="5000" highDataChannelPort="6000" />
<log centralLogFileMode="Site">
<centralLogFile period="Daily" localTimeRollover="false" enabled="true" />
</log>
<providerDefinitions>
<add name="FtpXmlAuthentication"
type="FtpXmlAuthentication, FtpXmlAuthentication, version=1.0.0.0, Culture=neutral, PublicKeyToken=426f62526f636b73" />
<activation>
<providerData name="FtpXmlAuthentication">
<add key="xmlFileName" value="C:\Inetpub\XmlSample\Users.xml" />
</providerData>
</activation>
</providerDefinitions>
<security>
<ipSecurity enableReverseDns="false" allowUnlisted="true">
<add ipAddress="169.254.0.0" subnetMask="255.255.0.0" allowed="false" />
<add ipAddress="127.0.0.1" allowed="true" />
</ipSecurity>
<requestFiltering>
<hiddenSegments>
<add segment="_vti_bin" />
</hiddenSegments>
<fileExtensions allowUnlisted="true">
<add fileExtension="exe" allowed="false" />
<add fileExtension="cmd" allowed="false" />
<add fileExtension="com" allowed="false" />
<add fileExtension="bat" allowed="false" />
</fileExtensions>
<requestLimits maxAllowedContentLength="104857600" />
</requestFiltering>
<authorization>
<add accessType="Allow" roles="administrators" permissions="Read, Write" />
</authorization>
</security>
<serverRuntime>
<hostNameSupport useDomainNameAsHostName="true" />
</serverRuntime>
</system.ftpServer>
Exemplo de código
Os exemplos a seguir adicionam uma definição de provedor FTP personalizado a um servidor.
AppCmd.exe
appcmd.exe set config -section:system.ftpServer/providerDefinitions /+"[name='FtpXmlAuthentication',type='FtpXmlAuthentication, FtpXmlAuthentication, version=1.0.0.0, Culture=neutral, PublicKeyToken=426f62526f636b73']" /commit:apphost
Observação
Defina o parâmetro commit para apphost
quando usar AppCmd.exe para definir essas configurações. Isso confirma as definições de configuração para a seção de local apropriado no arquivo ApplicationHost.config.
C#
using System;
using System.Text;
using Microsoft.Web.Administration;
internal static class Sample
{
private static void Main()
{
using (ServerManager serverManager = new ServerManager())
{
Configuration config = serverManager.GetApplicationHostConfiguration();
ConfigurationSection providerDefinitionsSection = config.GetSection("system.ftpServer/providerDefinitions");
ConfigurationElementCollection providerDefinitionsCollection = providerDefinitionsSection.GetCollection();
ConfigurationElement addElement = providerDefinitionsCollection.CreateElement("add");
addElement["name"] = @"FtpXmlAuthentication";
addElement["type"] = @"FtpXmlAuthentication, FtpXmlAuthentication, version=1.0.0.0, Culture=neutral, PublicKeyToken=426f62526f636b73";
providerDefinitionsCollection.Add(addElement);
serverManager.CommitChanges();
}
}
}
VB.NET
Imports System
Imports System.Text
Imports Microsoft.Web.Administration
Module Sample
Sub Main()
Dim serverManager As ServerManager = New ServerManager
Dim config As Configuration = serverManager.GetApplicationHostConfiguration
Dim providerDefinitionsSection As ConfigurationSection = config.GetSection("system.ftpServer/providerDefinitions")
Dim providerDefinitionsCollection As ConfigurationElementCollection = providerDefinitionsSection.GetCollection
Dim addElement As ConfigurationElement = providerDefinitionsCollection.CreateElement("add")
addElement("name") = "FtpXmlAuthentication"
addElement("type") = "FtpXmlAuthentication, FtpXmlAuthentication, version=1.0.0.0, Culture=neutral, PublicKeyToken=426f62526f636b73"
providerDefinitionsCollection.Add(addElement)
serverManager.CommitChanges()
End Sub
End Module
JavaScript
var adminManager = new ActiveXObject('Microsoft.ApplicationHost.WritableAdminManager');
adminManager.CommitPath = "MACHINE/WEBROOT/APPHOST";
var providerDefinitionsSection = adminManager.GetAdminSection("system.ftpServer/providerDefinitions", "MACHINE/WEBROOT/APPHOST");
var providerDefinitionsCollection = providerDefinitionsSection.Collection;
var addElement = providerDefinitionsCollection.CreateNewElement("add");
addElement.Properties.Item("name").Value = "FtpXmlAuthentication";
addElement.Properties.Item("type").Value = "FtpXmlAuthentication, FtpXmlAuthentication, version=1.0.0.0, Culture=neutral, PublicKeyToken=426f62526f636b73";
providerDefinitionsCollection.AddElement(addElement);
adminManager.CommitChanges();
VBScript
Set adminManager = createObject("Microsoft.ApplicationHost.WritableAdminManager")
adminManager.CommitPath = "MACHINE/WEBROOT/APPHOST"
Set providerDefinitionsSection = adminManager.GetAdminSection("system.ftpServer/providerDefinitions", "MACHINE/WEBROOT/APPHOST")
Set providerDefinitionsCollection = providerDefinitionsSection.Collection
Set addElement = providerDefinitionsCollection.CreateNewElement("add")
addElement.Properties.Item("name").Value = "FtpXmlAuthentication"
addElement.Properties.Item("type").Value = "FtpXmlAuthentication, FtpXmlAuthentication, version=1.0.0.0, Culture=neutral, PublicKeyToken=426f62526f636b73"
providerDefinitionsCollection.AddElement(addElement)
adminManager.CommitChanges()