Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Корпорация Майкрософт создала новую службу FTP, которая была полностью перезаписана для Windows Server® 2008. Эта новая служба FTP включает множество новых функций, позволяющих веб-авторам публиковать содержимое проще, чем раньше, и предлагает веб-администраторам больше возможностей безопасности и развертывания.
Новая служба FTP 7.5 поддерживает расширяемость, которая позволяет расширить встроенные функциональные возможности, включенные в службу FTP. В частности, FTP 7.5 поддерживает создание собственных поставщиков проверки подлинности и авторизации. Вы также можете создавать модули для пользовательского журналирования FTP и определять сведения о домашнем каталоге для ваших пользователей FTP.
В этом пошаговом руководстве вы узнаете, как использовать управляемый код для создания простого поставщика домашнего каталога FTP.
Необходимые условия
Для выполнения процедур в этой статье требуются следующие элементы:
На сервере Windows Server 2008 должны быть установлены службы IIS 7.0 или более поздней версии, а диспетчер служб IIS также должен быть установлен.
Необходимо установить новую службу FTP 7.5.
Для публикации FTP необходимо создать корневую папку.
Необходимо использовать Visual Studio 2008.
Замечание
Если вы используете более раннюю версию Visual Studio, некоторые из шагов, описанных в этом пошаговом руководстве, могут быть неверными.
Необходимо создать домашний каталог для каждого пользователя; Пример кода используется
C:\Ftpusers\%*UserName*%, но при необходимости можно изменить его.
Шаг 1. Настройка среды проекта
На этом шаге вы создадите проект в Visual Studio 2008 для демонстрационного поставщика.
Откройте Microsoft Visual Studio 2008.
Выберите меню "Файл ", а затем "Создать" и " Проект".
В диалоговом окне Создание проекта :
- Выберите Visual C# в качестве типа проекта.
- Выберите библиотеку классов в качестве шаблона.
- Введите FTPHomeDirectoryDemo в качестве имени проекта.
- Нажмите кнопку ОК.
Когда проект откроется, добавьте ссылочный путь к библиотеке расширяемости FTP:
Щелкните "Проект" и выберите "Свойства FTPHomeDirectoryDemo".
Перейдите на вкладку "Пути ссылки ".
Введите путь к сборке расширяемости FTP для вашей версии Windows, где C: — это диск операционной системы:
- Для Windows Server 2008 и Windows Vista:
C:\Windows\assembly\GAC\_MSIL\Microsoft.Web.FtpServer\7.5.0.0\_\_31bf3856ad364e35 - Для Windows 7:
C:\Program Files\Reference Assemblies\Microsoft\IIS
- Для Windows Server 2008 и Windows Vista:
Нажмите кнопку "Добавить папку".
Добавьте в проект ключ строгого имени:
- Щелкните "Проект" и выберите "Свойства FTPHomeDirectoryDemo".
- Перейдите на вкладку "Подписывание ".
- Установите флажок Подписать сборку.
- Выберите <"Новый"> в раскрывающемся списке "Строгое имя ключа".
- Введите FTPHomeDirectoryDemoKey для имени файла ключа.
- При необходимости введите пароль для файла ключа; в противном случае снимите флажок Защитить файл ключа паролем.
- Нажмите кнопку ОК.
Необязательно. Вы можете добавить настраиваемое событие сборки, чтобы автоматически добавить библиотеку DLL в глобальный кэш сборок (GAC) на компьютере разработки:
Щелкните "Проект" и выберите "Свойства FTPHomeDirectoryDemo".
Перейдите на вкладку "События сборки ".
Введите следующее в диалоговом окне Post-build event command line:
net stop ftpsvc call "%VS90COMNTOOLS%\vsvars32.bat">null gacutil.exe /if "$(TargetPath)" net start ftpsvc
Сохраните проект.
Шаг 2. Создание класса расширяемости
На этом шаге вы реализуете интерфейс для расширения для демо-поставщика.
Добавьте ссылку на библиотеку расширяемости FTP для проекта:
- Щелкните "Проект" и нажмите кнопку "Добавить ссылку"
- На вкладке .NET щелкните Microsoft.Web.FtpServer.
- Нажмите кнопку ОК.
Добавьте ссылку на System.Web для проекта:
- Щелкните "Проект" и нажмите кнопку "Добавить ссылку"
- На вкладке .NET щелкните System.Web.
- Нажмите кнопку ОК.
Добавьте код для класса проверки подлинности:
В обозревателе решений дважды щелкните файл Class1.cs .
Удалите существующий код.
Вставьте следующий код в редактор:
using System; using Microsoft.Web.FtpServer; namespace FtpHomeDirectory { public class FtpHomeDirDemo : BaseProvider, IFtpHomeDirectoryProvider { string IFtpHomeDirectoryProvider.GetUserHomeDirectoryData( string sessionId, string siteName, string userName) { // Note: You would add your own custom logic here. // Return the user's home directory based on their user name. return @"C:\Ftpusers\" + userName; } } }
Сохраните и скомпилируйте проект.
Замечание
Если вы не использовали необязательные шаги для регистрации сборок в GAC, необходимо вручную скопировать сборки на компьютер IIS и добавить сборки в GAC с помощью средства Gacutil.exe. Дополнительные сведения см. в статье Gacutil.exe (средство глобального кэша сборок).
Шаг 3. Добавление поставщика домашнего каталога в FTP
На этом шаге вы добавите демонстрационного поставщика в службу FTP и веб-сайт по умолчанию.
Определите сведения о сборке для поставщика расширяемости:
- В проводнике Windows откройте свой
C:\Windows\assemblyпуть, где C: — это диск операционной системы. - Найдите сборку FtpHomeDirectoryDemo .
- Щелкните правой кнопкой мыши сборку и выберите пункт "Свойства".
- Скопируйте значение культуры; например: Нейтральный.
- Скопируйте номер версии ; например: 1.0.0.0.
- Скопируйте значение маркера открытого ключа ; например: 426f62526f636b73.
- Щелкните Отмена.
- В проводнике Windows откройте свой
Добавьте поставщика расширяемости в глобальный список поставщиков FTP:
Откройте диспетчер служб IIS.
Щелкните имя компьютера в области "Подключения ".
Дважды щелкните проверку подлинности FTP в главном окне.
Щелкните Настраиваемые поставщики в панели Действия.
Нажмите кнопку "Зарегистрировать".
Введите FtpHomeDirectoryDemo для Имя поставщика.
Щелкните Managed Provider (.NET).
Введите информацию о сборке для поставщика расширяемости, используя ранее скопированные данные. Рассмотрим пример.
FtpHomeDirectory.FtpHomeDirDemo,FtpHomeDirectoryDemo,version=1.0.0.0,Culture=neutral,PublicKeyToken=426f62526f636b73Нажмите кнопку ОК.
Снимите флажок FtpHomeDirectoryDemo в списке поставщиков.
Нажмите кнопку ОК.
Добавьте настраиваемого поставщика на сайт:
На данный момент нет пользовательского интерфейса, который позволяет добавлять пользовательские функции на сайт, поэтому вам потребуется использовать следующую командную строку:
AppCmd set site "Default Web Site" /+ftpServer.customFeatures.providers.[name='FtpHomeDirectoryDemo',enabled='true']
Настройте изоляцию пользователей с использованием собственного поставщика:
На данный момент нет пользовательского интерфейса, который позволяет указать пользовательские функции для изоляции пользователей, поэтому вам потребуется использовать следующую командную строку:
AppCmd set site "Default Web Site" /ftpServer.userIsolation.mode:Custom
Сводка
В этом пошаговом руководстве вы узнали, как:
- Создайте проект в Visual Studio 2008 для пользовательского поставщика домашнего каталога FTP.
- Реализуйте интерфейс расширения для пользовательского поиска домашнего каталога FTP.
- Добавьте в службу FTP настраиваемого поставщика домашнего каталога.
Когда пользователи подключаются к сайту FTP, служба FTP устанавливает домашний каталог каждого пользователя на путь, указанный в демонстрационном поставщике.