martes, 12 de febrero de 2013

Modulo IIS para SharePoint 2010

Después de unas largas vacaciones. Regreso a la red con un nuevo post.

Bueno pues algunas veces tenemos la necesidad de controlar las peticiones que hacemos a SharePoint.
Esto nos es muy útil cuando los sitios de SharePoint tienen salida a internet.
Si mas preámbulo pongámonos manos a la obra.

Este desarrollo se hará con:
-Visual Studio 2012 Ultimate,
-Windows Server 2008 RC 2
-Internet Infomation Server 7.5

Lo primero es crear un proyecto de tipo Web



Agregamos el Module "botón derecho solución Agregar/Nuevo Elemento"


Cuando creamos el module la clase implementa de IHttpModule

Los Siguiente es crear un evento en el BeginRequest


Dentro de "ContextBeginRequest" estara la loguica que queremos implementar cuando inicie una peticon a nuestro sitio SharePoint.

Con esto ya tenemos listo nuestro Modulo para IIS 7.5 aunque quedan cosas por hacer.
  1. Firmar el ensamblado
  2. Configurar el ensamblado para que permita llamadas a otras dll(s). "Pensemos que en nuestra logica queremos llamar a un método que esta en otro ensamblado. tenemos que configurar este para que permita hacer la instancia al ensamblado deseado". Nota: "Se aconseja que la firma de los ensamblados los (.snk) sea igual para los ensamblados que se llamen entre si"
  3. Registrar en la GAC.


1) Damos click derecho en el proyecto/propiedades.. Firma/ Check Firma ensamblado 

Examinar "Buscamos en .snk" 

2) Expandimos Properties y editamos AssemblyInfo.cs y agregamos esta linea.
[assembly: AllowPartiallyTrustedCallers()]


3) Registrar En la GAC
Ejecutamos la utilidad gacutil -i [ruta de la dll]


Con esto ya tenemos listo to para poder instar el modulo en IIS.


Instalación de Modulo en IIS

Entramos ea la consola de IIS y vamos a módulos


Agregar Modulo Administrado


La parte Importante para SharePoint 2010 es editar el web.config

<compilation batch="false" debug="false">
      <assemblies>
          <add assembly="Helper.IIS75, Version=1.0.0.0, Culture=neutral, PublicKeyToken=d66cf1fdde02b800" />
     </assemblies>
 </compilation>
Y en la parte de Modules agregamos nuestro module
<modules runAllManagedModulesForAllRequests="true">
   <add name="UrlHandlerModule" type="Helper.IIS.UrlHandlerModule, Helper.IIS75, Version=1.0.0.0, Culture=neutral, PublicKeyToken=d66cf1fdde02b800"/>
</modules>


Con esto tenemos funcionando un Modulo en un Sitio de SharePoint

Saludos
Aldo Flores
@alduar














No hay comentarios:

Publicar un comentario