Nota
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
por Robert McMurray
Microsoft ha creado un nuevo servicio FTP que se ha reescrito completamente para Windows Server® 2008. Este nuevo servicio FTP incorpora muchas características nuevas que permiten a los autores web publicar contenido de una forma más sencilla y ofrece a los administradores web más opciones de seguridad e implementación.
El nuevo servicio FTP 7.5 admite extensibilidad que le permite ampliar la funcionalidad integrada que se incluye con el servicio FTP. En concreto, FTP 7.5 admite la creación de sus propios proveedores de autenticación y autorización. También puede crear proveedores para el registro de FTP personalizado y para determinar la información del directorio principal para los usuarios de FTP.
Este tutorial le llevará a través de los pasos para usar código administrado en Visual Basic para crear un proveedor de registro FTP simple.
Requisitos previos
Los siguientes elementos son necesarios para completar los procedimientos de esta sección:
Debe tener instalado IIS 7.0 o superior en su servidor de Windows Server 2008 y también debe tener instalado el Administrador de Internet Information Services (IIS).
El nuevo servicio FTP 7.5 debe estar instalado.
Debe crear una carpeta raíz para la publicación de FTP.
Debe usar Visual Studio 2008.
Nota:
Si usa una versión anterior de Visual Studio, es posible que algunos de los pasos de este tutorial no sean correctos.
Debe crearse una carpeta para el registro; el código de ejemplo usa
C:\logfiles\myftpsite
, pero puede cambiarlo si es necesario.
Paso 1: Configuración del entorno del proyecto
En este paso, creará un proyecto en Visual Studio 2008 para el proveedor de demostración.
Abra Microsoft Visual Studio 2008.
Haga clic en el menú Archivo, Nuevo y, luego, en Proyecto.
En el cuadro de diálogo Nuevo proyecto:
- Seleccione Visual Basic como tipo de proyecto.
- Elija Biblioteca de clases como plantilla.
- Escriba FtpLoggingDemo como nombre del proyecto.
- Haga clic en OK.
Cuando se abra el proyecto, agregue las referencias necesarias al proyecto:
Haga clic en Proyecto y después haga clic en Propiedades de FtpLoggingDemo.
Haga clic en la pestaña Referencias .
Agregue una ruta de referencia para la biblioteca de extensibilidad FTP:
En la pestaña Referencias, haga clic en el botón Rutas de referencia.
Escriba la ruta al ensamblado de extensibilidad FTP para la versión de Windows, donde C: es la unidad del sistema operativo:
- Para Windows Server 2008 y Windows Vista:
C:\Windows\assembly\GAC\_MSIL\Microsoft.Web.FtpServer\7.5.0.0\_\_31bf3856ad364e35
- Para Windows 7:
C:\Program Files\Reference Assemblies\Microsoft\IIS
- Para Windows Server 2008 y Windows Vista:
Haga clic en Agregar carpeta.
Haga clic en OK.
Agregue una referencia a la biblioteca de extensibilidad FTP para el proyecto:
- En la pestaña Referencias, haga clic en el botón Agregar.
- Seleccione Microsoft.Web.FtpServer en la lista de componentes.
- Haga clic en OK.
Agregue una referencia a System.Web para el proyecto:
- En la pestaña Referencias, haga clic en el botón Agregar.
- Seleccione System.Web en la lista de componentes.
- Haga clic en OK.
Agregue al proyecto una clave de nombre seguro:
- Haga clic en Proyecto y después haga clic en Propiedades de FtpLoggingDemo.
- Haga clic en la pestaña Firma.
- Marque la casilla Firmar el ensamblado.
- Elija <Nuevo...> en el cuadro desplegable de nombre de clave segura.
- Escriba FtpLoggingDemoKey como nombre de archivo de clave.
- Si lo desea, escriba una contraseña para el archivo de clave; de lo contrario, desactive la casilla Proteger mi archivo de clave con una contraseña.
- Haga clic en OK.
Opcional: puede agregar un evento de compilación personalizado para agregar el archivo DLL automáticamente a la caché global de ensamblados (GAC) en el equipo de desarrollo:
Haga clic en Proyecto y después haga clic en Propiedades de FtpLoggingDemo.
Haga clic en la pestaña Compilar.
Haga clic en el botón Eventos de compilación.
En el cuadro de diálogo Línea de comandos del evento posterior a la compilación, escriba el siguiente comando:
net stop ftpsvc call "%VS90COMNTOOLS%\vsvars32.bat">null gacutil.exe /if "$(TargetPath)" net start ftpsvc
Guarde el proyecto.
Paso 2: Creación de la clase de extensibilidad
En este paso, implementará la interfaz de extensibilidad de inicio de sesión para el proveedor de demostración.
Agregue el código para la clase de autenticación:
En el Explorador de soluciones, haga doble clic en el archivo Class1.cs.
Elimine el código existente.
Pegue el siguiente código en el 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
Guarde el proyecto y compílelo.
Nota:
Si no ha usado los pasos opcionales para registrar los ensamblados en la GAC, deberá copiar manualmente los ensamblados en el equipo de IIS y agregar los ensamblados a la GAC mediante la herramienta Gacutil.exe. Para más información, consulte el artículo Herramienta de caché global de ensamblados (Gacutil.exe).
Paso 3: Adición del proveedor de registro a FTP
En este paso, agregará el proveedor de demostración al servicio FTP y el sitio web predeterminado.
Determine la información del ensamblado para el proveedor de extensibilidad:
- En el Explorador de Windows, abra la ruta
C:\Windows\assembly
, donde C: es la unidad del sistema operativo. - Busque el ensamblado FtpLoggingDemo.
- Haga clic con el botón derecho en el ensamblado y, después, haga clic en Propiedades.
- Copie el valor Cultura; por ejemplo: Neutro.
- Copie el número de Versión; por ejemplo: 1.0.0.0.
- Copie el valor de Token de clave pública; por ejemplo: 426f62526f636b73.
- Haga clic en Cancelar.
- En el Explorador de Windows, abra la ruta
Agregue el proveedor de extensibilidad a la lista global de proveedores FTP:
Abra Administrador de Internet Information Services (IIS).
Haga clic en el nombre de equipo en el panel Conecciones.
Haga doble clic en Autenticación FTP en la ventana principal.
Haga clic en Proveedores personalizados... en el panel Acciones.
Haga clic en Registrar.
Escriba FtpLoggingDemo como Nombre del proveedor.
Haga clic en Proveedor de datos administrados (.NET).
Escriba la información de ensamblado para el proveedor de extensibilidad mediante la información que ha copiado antes. Por ejemplo:
FtpLoggingDemo.FtpLogging.FtpLogDemo,FtpLoggingDemo,version=1.0.0.0,Culture=neutral,PublicKeyToken=426f62526f636b73
Haga clic en OK.
Desactive la casilla FtpLoggingDemo de la lista de proveedores.
Haga clic en OK.
Agregue el proveedor personalizado a un sitio:
En este momento no hay ninguna interfaz de usuario que le permita agregar características personalizadas a un sitio, por lo que tendrá que usar la siguiente línea de comandos:
AppCmd set site "Default Web Site" /+ftpServer.customFeatures.providers.[name='FtpLoggingDemo',enabled='true'] /commit:apphost
Resumen
En este tutorial ha aprendido a:
- Cree un proyecto de Visual Basic en Visual Studio 2008 para un proveedor de registro FTP personalizado.
- Implemente la interfaz de extensibilidad para el registro FTP personalizado.
- Agregue un proveedor de registro personalizado al servicio FTP.
Cuando los usuarios se conectan al sitio FTP, el servicio FTP creará un archivo de registro en la ruta de acceso especificada en el proveedor de demostración.