Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
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:
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:
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
Pada taskbar, klik Manajer Server.
Di Manajer Server, klik menu Kelola , lalu klik Tambahkan Peran dan Fitur.
Di wizard Tambahkan Peran dan Fitur , klik Berikutnya. Pilih jenis penginstalan dan klik Berikutnya. Pilih server tujuan dan klik Berikutnya.
Pada halaman Peran Server , perluas Server Web (IIS), lalu pilih Server FTP.
Klik Berikutnya, lalu pada halaman Pilih fitur , klik Berikutnya lagi.
Pada halaman Konfirmasi pilihan instalasi, klik Instal.
Pada halaman Hasil , klik Tutup.
Windows 8 atau Windows 8.1
Pada layar Mulai, pindahkan penunjuk ke sudut kiri bawah, klik kanan tombol Mulai, lalu klik Panel Kontrol.
Di Panel Kontrol, klik Program dan Fitur, lalu klik Aktifkan atau nonaktifkan fitur Windows.
Perluas Layanan Informasi Internet, lalu pilih Server FTP.
Klik OK.
Klik Tutup.
Windows Server 2008 R2
Pada taskbar, klik Mulai, arahkan ke Alat Administratif, lalu klik Manajer Server.
Di panel hierarki Manajer Server , perluas Peran, lalu klik Server Web (IIS).
Di panel Server Web (IIS), gulir ke bagian Layanan Peran , lalu klik Tambahkan Layanan Peran.
Pada halaman Pilih Layanan Peran dari Wizard Tambahkan Layanan Peran, perluas Server FTP.
Pilih Layanan FTP.
Klik Berikutnya.
Pada halaman Konfirmasi Pilihan Penginstalan , klik Instal.
Pada halaman Hasil , klik Tutup.
Windows 7
Pada taskbar, klik Mulai, lalu klik Panel Kontrol.
Di Panel Kontrol, klik Program dan Fitur, lalu klik Aktifkan atau nonaktifkan Fitur Windows.
Perluas Layanan Informasi Internet, lalu Server FTP.
Pilih Layanan FTP.
Klik OK.
Windows Server 2008 atau Windows Vista
Unduh paket penginstalan dari URL berikut:
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.
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.
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.
- Klik Penyedia Kustom... di panel Tindakan .
- Klik Daftar.
- Masukkan nama yang mudah diingat untuk penyedia autentikasi kustom di kotak Nama . Misalnya, FtpAuthenticationDemo.
- Klik Penyedia Terkelola (.NET).
- 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.
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()