How To: Desarrollar modulos HTTP con .NET en IIS7 y usarlos desde PHP

Una de las ventajas de IIS7 es la flexibilidad para aceptar modulos personalizados desarrollados por nosotros según nuestras necesidades. Estos modulos conocidos como Managed Modules pueden ser desarrollados con .NET (C#|VB) y colocarlos a la disposición del servidor completo o un sitio web definido.

Pero, ¿Cómo le sacamos provecho a esta flexibilidad si nuestro sitio web está desarrollado en PHP?
Con este pequeño ejemplo podemos ver cómo podemos construir un puente para pasar información a PHP apoyandonos en las variables del servidor.

Requisitos:
Tener instalado PHP con FastCGI en nuestro servidor web. Puedes descargar un instalador de PHP que configura también la extensión en IIS en el siguiente link: http://windows.php.net

Paso 1:
Creamos un nuevo sitio web en IIS con soporte para nuestra extensión PHP

Paso 2:
Dentro del directorio de nuestro sitio web creamos una carpeta llamada App_Code y creamos un archivo dentro de esta carpeta llamado variables.cs el cual va a contener el siguiente codigo:

using System;
using System.Web;
using System.Web.Security;

namespace PHPSite
{
    public class PHPSiteModule : IHttpModule
    {
        public void Dispose() { }

        public void Init(HttpApplication app)
        {
            app.PostAuthorizeRequest += new EventHandler(ExtractToken);
        }

        private void ExtractToken(Object source, EventArgs args)
        {
            HttpApplication app = (HttpApplication)source;

            app.Context.Request.ServerVariables["APP_TOKEN"] = "MYTOKENLFFJ3OJVDKVC3";

        }
    }
}

Paso 3:
Para configurar nuestro modulo en IIS7, abrimos el IIS Manager (puedes llamarlo desde la barra de busqueda tecleando el comando inetmgr), seleccionamos nuestro sitio web que creamos, en la sección IIS entramos en la función llamada Modulos (Modules en inglés) y creamos un nuevo modulo (en la parte superior derecha se encuentra la opción para agregar nuevos modulos) donde le daremos un nombre y seleccionaremos en el tipo de modulo el que creamos anteriormente.

Presionamos OK para guardar nuestro modulo y ya estamos listos para consumirlo.

Paso 4:
En el directorio raíz de nuestro sitio web creamos un archivo llamado test.php el cual va a contener el siguiente código:

<?php
 echo "Mi Token registrado es: <strong>".$_SERVER["APP_TOKEN"]."</strong>";
?>

Guardamos los cambios y consultamos el script de php (http://rutadelaaplicacion/test.php) y listo, ya estamos leyendo información generada desde un modulo http de IIS7 a través de variables de servidor.

Este escenario nos abre la posibilidad de crear robustos procesos con .NET y consumir los resultados desde nuestras aplicaciones web o interactuar con modelos de autenticación como Forms Authentication y Windows Authentication desde PHP.

Abajo les dejo el link para descargar este ejemplo:

http://cid-f04bcee769e32165.skydrive.live.com/self.aspx/How%20To/PHP%20Site.zip

Espero les sea de utilidad.
Saludos,

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s