Bagikan melalui


Aktivasi Aktivasi <Penyedia FTP>

Gambaran Umum

Elemen <activation><providerDefinitions> elemen menentukan kumpulan pasangan nama/nilai kustom yang menentukan parameter apa pun yang diperlukan penyedia kustom.

Catatan

Elemen ini ditambahkan dalam FTP 7.5.

Dimulai dengan FTP 7.5, layanan FTP mendukung ekstensibilitas untuk autentikasi dan peran kustom, pengelogan, dan pencarian direktori beranda. Saat membuat penyedia ekstensibilitas, Anda harus terlebih dahulu mendaftarkannya di .NET Global Assembly Cache (GAC) untuk penyedia kode terkelola, atau di registri sistem Anda untuk penyedia kode native (COM). Untuk informasi tambahan tentang cara membuat penyedia kustom FTP, lihat bagian berikut ini di situs Web IIS.net Microsoft:

Mengembangkan untuk FTP 7.5

Kompatibilitas

Versi Catatan
IIS 10.0 Elemen <activation> tidak dimodifikasi dalam IIS 10.0.
IIS 8.5 Elemen <activation> tidak dimodifikasi dalam IIS 8.5.
IIS 8.0 Elemen <activation> tidak dimodifikasi dalam IIS 8.0.
IIS 7.5 Elemen <activation><providerDefinitions> dari elemen dikirim sebagai fitur FTP 7.5.
IIS 7.0 Elemen ini <activation> bukan bagian dari FTP 7.0.
IIS 6.0 Layanan FTP di IIS 6.0 tidak mendukung ekstensibilitas.

Catatan

Layanan FTP 7.0 dan FTP 7.5 yang dikirim di luar band untuk IIS 7.0, yang memerlukan pengunduhan dan penginstalan modul dari URL berikut:

https://www.iis.net/expand/FTP

Dengan Windows 7 dan Windows Server 2008 R2, layanan FTP 7.5 dikirim sebagai fitur untuk IIS 7.5, sehingga mengunduh layanan FTP tidak lagi diperlukan.

Siapkan

Untuk mendukung penerbitan FTP untuk server Web, Anda harus menginstal layanan FTP. Untuk melakukannya, gunakan langkah-langkah berikut.

Windows Server 2012 atau Windows Server 2012 R2

  1. Pada taskbar, klik Manajer Server.

  2. Di Manajer Server, klik menu Kelola , lalu klik Tambahkan Peran dan Fitur.

  3. Di wizard Tambahkan Peran dan Fitur , klik Berikutnya. Pilih jenis penginstalan dan klik Berikutnya. Pilih server tujuan dan klik Berikutnya.

  4. Pada halaman Peran Server , perluas Server Web (IIS), lalu pilih Server FTP.

    Catatan

    Untuk mendukung ASP. Autentikasi keanggotaan atau autentikasi Manajer IIS untuk layanan FTP, Anda harus memilih Ekstensibilitas FTP, selain Layanan FTP.
    Cuplikan layar Server Web (IIS) > Sub-opsi Server FTP di halaman Peran Server. Kotak Ekstensibilitas Layanan FTP dan FTP dicentang. .

  5. Klik Berikutnya, lalu pada halaman Pilih fitur , klik Berikutnya lagi.

  6. Pada halaman Konfirmasi pilihan instalasi, klik Instal.

  7. Pada halaman Hasil , klik Tutup.

Windows 8 atau Windows 8.1

  1. Pada layar Mulai, pindahkan penunjuk ke sudut kiri bawah, klik kanan tombol Mulai, lalu klik Panel Kontrol.

  2. Di Panel Kontrol, klik Program dan Fitur, lalu klik Aktifkan atau nonaktifkan fitur Windows.

  3. Perluas Layanan Informasi Internet, lalu pilih Server FTP.

    Catatan

    Untuk mendukung ASP. Autentikasi keanggotaan atau autentikasi Manajer IIS untuk layanan FTP, Anda juga harus memilih Ekstensibilitas FTP.
    Cuplikan layar sub-opsi Layanan Informasi Internet pada halaman Program dan Fitur di panel kontrol Windows 8. Kotak Ekstensibilitas FTP dan FTP Servie dicentang.

  4. Klik OK.

  5. Klik Tutup.

Windows Server 2008 R2

  1. Pada taskbar, klik Mulai, arahkan ke Alat Administratif, lalu klik Manajer Server.

  2. Di panel hierarki Manajer Server , perluas Peran, lalu klik Server Web (IIS).

  3. Di panel Server Web (IIS), gulir ke bagian Layanan Peran , lalu klik Tambahkan Layanan Peran.

  4. Pada halaman Pilih Layanan Peran dari Wizard Tambahkan Layanan Peran, perluas Server FTP.

  5. Pilih Layanan FTP.

    Catatan

    Untuk mendukung ASP. Autentikasi keanggotaan atau autentikasi Manajer IIS untuk layanan FTP, Anda juga harus memilih Ekstensibilitas FTP.
    Cuplikan layar panel Server Web (IIS) di panel kontrol admin Windows Server 2008. Kotak Layanan FTP dicentang.

  6. Klik Berikutnya.

  7. Pada halaman Konfirmasi Pilihan Penginstalan , klik Instal.

  8. Pada halaman Hasil , klik Tutup.

Windows 7

  1. Pada taskbar, klik Mulai, lalu klik Panel Kontrol.

  2. Di Panel Kontrol, klik Program dan Fitur, lalu klik Aktifkan atau nonaktifkan Fitur Windows.

  3. Perluas Layanan Informasi Internet, lalu Server FTP.

  4. Pilih Layanan FTP.

    Catatan

    Untuk mendukung ASP. Autentikasi keanggotaan atau autentikasi Manajer IIS untuk layanan FTP, Anda juga harus memilih Ekstensibilitas FTP.
    Cuplikan layar sub-opsi Server FTP di bawah Layanan Informasi Internet, pada halaman Aktifkan atau nonaktifkan Fitur Windows di panel kontrol Windows 7. Kotak Ekstensibilitas FTP dan Layanan FTP dicentang.

  5. Klik OK.

Windows Server 2008 atau Windows Vista

  1. Unduh paket penginstalan dari URL berikut:

  2. Ikuti instruksi dalam panduan berikut untuk menginstal layanan FTP:

Bagaimana Caranya

Cara menambahkan penyedia autentikasi kustom kode terkelola untuk situs FTP

Catatan

Langkah-langkah ini mengasumsikan bahwa penyedia autentikasi FTP kustom telah diinstal dan terdaftar di Global Assembly Cache (GAC) server Anda. Untuk informasi selengkapnya tentang cara mendaftarkan rakitan terkelola, lihat topik Global Assembly Cache Tool (Gacutil.exe) di situs Web MSDN Microsoft.

  1. Tentukan informasi perakitan untuk penyedia ekstensibilitas:

    • Di Windows Explorer, buka jalur "C:\Windows\assembly", di mana C: adalah drive sistem operasi Anda.
    • Temukan assembly. Misalnya, FtpAuthenticationDemo.
    • Klik kanan rakitan, lalu klik Properti.
    • Salin nilai Budaya . Misalnya, Netral.
    • Salin nomor Versi . Misalnya, 1.0.0.0.
    • Salin nilai Token Kunci Umum . Misalnya, 426f62526f636b73.
    • Klik Batalkan.
  2. Tambahkan penyedia ekstensibilitas ke daftar global penyedia autentikasi FTP:

    • Buka Manajer Layanan Informasi Internet (IIS).
    • Klik nama komputer Anda di panel Koneksi .
    • Klik dua kali Autentikasi FTP di jendela utama.
      Cuplikan layar dialog opsi Autentikasi FTP di manajer Layanan Informasi Internet.
    • Klik Penyedia Kustom... di panel Tindakan .
    • Klik Daftar.
      Cuplikan layar dialog Penyedia Kustom, memperlihatkan dua penyedia kustom.
    • Masukkan nama yang mudah diingat untuk penyedia autentikasi kustom di kotak Nama . Misalnya, FtpAuthenticationDemo.
    • Klik Penyedia Terkelola (.NET).
      Cuplikan layar dialog Tambahkan Penyedia Autentikasi Kustom, memperlihatkan bidang Nama.
    • Masukkan informasi perakitan untuk penyedia ekstensibilitas menggunakan informasi yang Anda salin sebelumnya. Contohnya:
      FtpAuthentication.FtpAuthDemo, FtpAuthenticationDemo, version=1.0.0.0, Culture=neutral, PublicKeyToken=426f62526f636b73
    • Klik OK.
    • Kosongkan kotak centang untuk penyedia autentikasi kustom dalam daftar penyedia.
    • Klik OK.
  3. Tambahkan penyedia autentikasi kustom untuk situs FTP:

    • Buka situs FTP di Pengelola Layanan Informasi Internet (IIS).
    • Klik dua kali Autentikasi FTP di jendela utama.
    • Klik Penyedia Kustom... di panel Tindakan .
    • Periksa untuk memilih dan mengaktifkan penyedia autentikasi kustom di daftar penyedia.
    • Klik OK.

Konfigurasi

Elemen <activation> elemen dikonfigurasi <providerDefinitions> pada tingkat global di ApplicationHost.config.

Atribut

Tidak ada.

Elemen Anak

Elemen Deskripsi
providerData Elemen opsional.

Menentukan kumpulan pasangan kunci/nilai yang berisi data untuk penyedia kustom.

Sampel Konfigurasi

Contoh berikut mengilustrasikan beberapa pengaturan konfigurasi di elemen global <system.ftpServer> untuk server. Lebih khusus lagi, pengaturan dalam contoh ini menunjukkan cara:

  • Aktifkan penembolokan kredensial FTP dan tentukan waktu habis 10 menit (600 detik.)

  • Konfigurasikan port rendah sebagai 5000 dan port tinggi sebagai 6000 untuk komunikasi saluran data.

  • Aktifkan pengelogan dan tentukan bahwa file log akan disimpan per situs, dan file log tersebut akan diputar setiap hari pada waktu UTC.

  • Tentukan penyedia FTP kustom dan tentukan parameter kustom untuk penyedia tersebut.

  • Tentukan pembatasan IP global yang memungkinkan akses FTP dari host lokal dan tolak akses ke blok alamat IP 169.254.0.0 hingga 169.254.255.255.

  • Konfigurasikan pemfilteran permintaan dengan opsi berikut:

    • Blokir akses FTP ke direktori virtual _vti_bin, yang digunakan dengan Ekstensi Server FrontPage.
    • Blokir beberapa jenis file yang terkait dengan executable.
    • Tentukan 100MB sebagai ukuran file maksimum.
  • Tambahkan aturan otorisasi global yang memungkinkan akses untuk grup administrator.

  • Tentukan bahwa sintaks nama domain dapat digunakan untuk nama 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>

Kode Sampel

Contoh berikut menambahkan definisi penyedia FTP kustom ke server, lalu menambahkan parameter data untuk penyedia tersebut.

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

appcmd.exe set config -section:system.ftpServer/providerDefinitions /+"activation.[name='FtpXmlAuthentication']" /commit:apphost

appcmd.exe set config -section:system.ftpServer/providerDefinitions /+"activation.[name='FtpXmlAuthentication'].[key='xmlFileName',value='C:\Inetpub\wwwroot\App_Data\Users.xml']" /commit:apphost

Catatan

Anda harus memastikan untuk mengatur parameter penerapan ke apphost saat Anda menggunakan AppCmd.exe untuk mengonfigurasi pengaturan ini. Ini menerapkan pengaturan konfigurasi ke bagian lokasi yang sesuai dalam file 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);

         ConfigurationElementCollection activationCollection = providerDefinitionsSection.GetCollection("activation");
         ConfigurationElement providerDataElement = activationCollection.CreateElement("providerData");
         providerDataElement["name"] = @"FtpXmlAuthentication";

         ConfigurationElementCollection providerDataCollection = providerDataElement.GetCollection();
         ConfigurationElement addElement1 = providerDataCollection.CreateElement("add");
         addElement1["key"] = @"xmlFileName";
         addElement1["value"] = @"C:\Inetpub\wwwroot\App_Data\Users.xml";
         providerDataCollection.Add(addElement1);
         activationCollection.Add(providerDataElement);

         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)

      Dim activationCollection As ConfigurationElementCollection = providerDefinitionsSection.GetCollection("activation")
      Dim providerDataElement As ConfigurationElement = activationCollection.CreateElement("providerData")
      providerDataElement("name") = "FtpXmlAuthentication"

      Dim providerDataCollection As ConfigurationElementCollection = providerDataElement.GetCollection
      Dim addElement1 As ConfigurationElement = providerDataCollection.CreateElement("add")
      addElement1("key") = "xmlFileName"
      addElement1("value") = "C:\Inetpub\wwwroot\App_Data\Users.xml"
      providerDataCollection.Add(addElement1)
      activationCollection.Add(providerDataElement)

      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);

var activationCollection = providerDefinitionsSection.ChildElements.Item("activation").Collection;
var providerDataElement = activationCollection.CreateNewElement("providerData");
providerDataElement.Properties.Item("name").Value = "FtpXmlAuthentication";
var providerDataCollection = providerDataElement.Collection;

var addElement1 = providerDataCollection.CreateNewElement("add");
addElement1.Properties.Item("key").Value = "xmlFileName";
addElement1.Properties.Item("value").Value = "C:\\Inetpub\\wwwroot\\App_Data\\Users.xml";
providerDataCollection.AddElement(addElement1);
activationCollection.AddElement(providerDataElement);

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)

Set activationCollection = providerDefinitionsSection.ChildElements.Item("activation").Collection
Set providerDataElement = activationCollection.CreateNewElement("providerData")
providerDataElement.Properties.Item("name").Value = "FtpXmlAuthentication"
Set providerDataCollection = providerDataElement.Collection

Set addElement1 = providerDataCollection.CreateNewElement("add")
addElement1.Properties.Item("key").Value = "xmlFileName"
addElement1.Properties.Item("value").Value = "C:\Inetpub\wwwroot\App_Data\Users.xml"
providerDataCollection.AddElement(addElement1)
activationCollection.AddElement(providerDataElement)

adminManager.CommitChanges()