Bagikan melalui


Cara Menggunakan Kode Terkelola (Visual Basic) untuk Membuat Penyedia Pengelogan FTP Sederhana

oleh Robert McMurray

Microsoft telah membuat layanan FTP baru yang telah ditulis ulang sepenuhnya untuk Windows ServerĀ® 2008. Layanan FTP baru ini menggabungkan banyak fitur baru yang memungkinkan penulis Web menerbitkan konten lebih mudah daripada sebelumnya, dan menawarkan administrator Web lebih banyak opsi keamanan dan penyebaran.

Layanan FTP 7.5 baru mendukung ekstensibilitas yang memungkinkan Anda memperluas fungsionalitas bawaan yang disertakan dengan layanan FTP. Lebih khusus lagi, FTP 7.5 mendukung pembuatan penyedia autentikasi dan otorisasi Anda sendiri. Anda juga dapat membuat penyedia untuk pengelogan FTP kustom dan untuk menentukan informasi direktori beranda untuk pengguna FTP Anda.

Panduan ini akan mengarahkan Anda melalui langkah-langkah untuk menggunakan kode terkelola di Visual Basic untuk membuat penyedia pengelogan FTP sederhana.

Prasyarat

Item berikut diperlukan untuk menyelesaikan prosedur dalam artikel ini:

  1. IIS 7.0 atau lebih tinggi harus diinstal pada server Windows Server 2008 Anda, dan Manajer Layanan Informasi Internet (IIS) juga harus diinstal.

  2. Layanan FTP 7.5 baru harus diinstal.

  3. Anda harus membuat folder akar untuk penerbitan FTP.

  4. Anda harus menggunakan Visual Studio 2008.

    Catatan

    Jika Anda menggunakan versi Visual Studio yang lebih lama, beberapa langkah dalam panduan ini mungkin tidak benar.

  5. Folder untuk pengelogan harus dibuat; sampel kode menggunakan C:\logfiles\myftpsite, tetapi Anda dapat mengubahnya jika perlu.

Langkah 1: Siapkan Lingkungan Proyek

Dalam langkah ini, Anda akan membuat proyek di Visual Studio 2008 untuk penyedia demo.

  1. Buka Microsoft Visual Studio 2008.

  2. Klik menu File , lalu Baru, lalu Proyek.

  3. Dalam kotak dialog Proyek Baru:

    • Pilih Visual Basic sebagai jenis proyek.
    • Pilih Pustaka Kelas sebagai templat.
    • Ketik FtpLoggingDemo sebagai nama proyek.
    • Klik OK.
  4. Saat proyek terbuka, tambahkan referensi yang diperlukan ke proyek:

    • Klik Proyek, lalu klik Properti FtpLoggingDemo.

    • Klik tab Referensi .

    • Tambahkan jalur referensi untuk pustaka ekstensibilitas FTP:

      • Pada tab Referensi , lalu klik tombol Jalur Referensi.

      • Masukkan jalur ke rakitan ekstensibilitas FTP untuk versi Windows Anda, di mana C: adalah drive sistem operasi Anda:

        • Untuk Windows Server 2008 dan Windows Vista: C:\Windows\assembly\GAC\_MSIL\Microsoft.Web.FtpServer\7.5.0.0\_\_31bf3856ad364e35
        • Untuk Windows 7: C:\Program Files\Reference Assemblies\Microsoft\IIS
      • Klik Tambahkan Folder.

      • Klik OK.

    • Tambahkan referensi ke pustaka ekstensibilitas FTP untuk proyek:

      • Pada tab Referensi , lalu klik tombol Tambahkan .
      • Pilih Microsoft.Web.FtpServer dalam daftar komponen.
      • Klik OK.
    • Tambahkan referensi ke System.Web untuk proyek:

      • Pada tab Referensi , lalu klik tombol Tambahkan .
      • Pilih System.Web dalam daftar komponen.
      • Klik OK.
  5. Tambahkan kunci nama yang kuat ke proyek:

    • Klik Proyek, lalu klik Properti FtpLoggingDemo.
    • Klik tab Penandatanganan.
    • Centang kotak centang Tanda tangani rakitan .
    • Pilih <Baru...> dari kotak drop-down nama kunci yang kuat.
    • Masukkan FtpLoggingDemoKey untuk nama file kunci.
    • Jika diinginkan, masukkan kata sandi untuk file kunci; jika tidak, kosongkan kotak centang Lindungi file kunci saya dengan kata sandi .
    • Klik OK.
  6. Opsional: Anda dapat menambahkan peristiwa build kustom untuk menambahkan DLL secara otomatis ke Global Assembly Cache (GAC) di komputer pengembangan Anda:

    • Klik Proyek, lalu klik Properti FtpLoggingDemo.

    • Klik tab Kompilasi.

    • Klik tombol Bangun Peristiwa .

    • Masukkan yang berikut ini dalam kotak dialog Baris perintah peristiwa pasca-build:

      net stop ftpsvc
      call "%VS90COMNTOOLS%\vsvars32.bat">null
      gacutil.exe /if "$(TargetPath)"
      net start ftpsvc
      
  7. Simpan proyeknya.

Langkah 2: Buat Kelas Ekstensibilitas

Dalam langkah ini, Anda akan menerapkan antarmuka ekstensibilitas pengelogan untuk penyedia demo.

  1. Tambahkan kode untuk kelas autentikasi:

    • Di Penjelajah Solusi, klik dua kali file Class1.cs.

    • Hapus kode yang ada.

    • Tempelkan kode berikut ke dalam editor:

      Imports System
      Imports System.IO
      Imports Microsoft.Web.FtpServer
      
      Namespace FtpLogging
          Public Class FtpLogDemo
              Inherits BaseProvider
              Implements IFtpLogProvider
              Public Sub Log(ByVal loggingParameters As FtpLogEntry) _
                  Implements IFtpLogProvider.Log
                  ' Note: You would add your own custom logic here.
                  ' Open the log file for output.
                  Dim sw As StreamWriter = New StreamWriter( _
                      "C:\logfiles\myftpsite\myftplog.log", True)
                  ' Retrieve the current date and time for the log entry.
                  Dim dt As DateTime = DateTime.Now
                  ' Retrieve the user name.
                  Dim un As String = loggingParameters.UserName
                  ' Write the log entry to the log file.
                  sw.WriteLine( _
                      String.Format("{0}" & vbTab & "{1}" & vbTab & "{2}" & _
                      vbTab & "{3}" & vbTab & "{4}" & vbTab & "{5}", _
                      dt.ToShortDateString(), _
                      dt.ToLongTimeString(), _
                      loggingParameters.RemoteIPAddress, _
                      IIf((un.Length = 0), "-", un), _
                      loggingParameters.Command, _
                      loggingParameters.SessionId))
                  sw.Dispose()
              End Sub
          End Class
      End Namespace
      
  2. Simpan dan kompilasi proyek.

Catatan

Jika Anda tidak menggunakan langkah-langkah opsional untuk mendaftarkan rakitan di GAC, Anda harus menyalin rakitan secara manual ke komputer IIS Anda dan menambahkan rakitan ke GAC menggunakan alat Gacutil.exe. Untuk informasi selengkapnya, lihat artikel Global Assembly Cache Tool (Gacutil.exe).

Langkah 3: Tambahkan Penyedia Pengelogan ke FTP

Dalam langkah ini, Anda akan menambahkan penyedia demo ke layanan FTP dan situs Web default.

  1. Tentukan informasi perakitan untuk penyedia ekstensibilitas:

    • Di Windows Explorer, buka jalur Anda C:\Windows\assembly , di mana C: adalah drive sistem operasi Anda.
    • Temukan rakitan FtpLoggingDemo.
    • Klik kanan rakitan, lalu klik Properti.
    • Salin nilai Budaya; misalnya: Netral.
    • Salin Nomor versi; misalnya: 1.0.0.0.
    • Salin nilai Token Kunci Publik; misalnya: 426f62526f636b73.
    • Klik Batalkan.
  2. Tambahkan penyedia ekstensibilitas ke daftar global penyedia FTP:

    • Buka Manajer Layanan Informasi Internet (IIS).

    • Klik nama komputer Anda di panel Koneksi ion.

    • Klik dua kali Autentikasi FTP di jendela utama.

    • Klik Penyedia Kustom... di panel Tindakan .

    • Klik Daftar.

    • Masukkan FtpLoggingDemo untuk Nama penyedia.

    • Klik Penyedia Terkelola (.NET).

    • Masukkan informasi perakitan untuk penyedia ekstensibilitas menggunakan informasi yang Anda salin sebelumnya. Contohnya:

      FtpLoggingDemo.FtpLogging.FtpLogDemo,FtpLoggingDemo,version=1.0.0.0,Culture=neutral,PublicKeyToken=426f62526f636b73
      
    • Klik OK.

    • Kosongkan kotak centang FtpLoggingDemo di daftar penyedia.

    • Klik OK.

  3. Tambahkan penyedia kustom ke situs:

    • Saat ini tidak ada UI yang memungkinkan Anda menambahkan fitur kustom ke situs, jadi Anda harus menggunakan baris perintah berikut:

      AppCmd set site "Default Web Site" /+ftpServer.customFeatures.providers.[name='FtpLoggingDemo',enabled='true'] /commit:apphost
      

Ringkasan

Dalam panduan ini Anda mempelajari cara:

  • Buat proyek Visual Basic di Visual Studio 2008 untuk penyedia pengelogan FTP kustom.
  • Terapkan antarmuka ekstensibilitas untuk pengelogan FTP kustom.
  • Tambahkan penyedia pengelogan kustom ke layanan FTP Anda.

Saat pengguna tersambung ke situs FTP Anda, layanan FTP akan membuat file log di jalur yang Anda tentukan di penyedia demo.