sábado, 9 de mayo de 2009

Configuración de Permisos para utilizar SQL en un WebPart

Problema

Cuando se desarrollan WebParts que interatúan con SQL en WSS 3.0 o MOSS 2007 Standard Edition (en la versión enterprise podríamos utilizar BDC para conectarnos a otra base de datos) aparece normalmente un error de permisos del tipo:


{"Request for the permission of type System.Data.SqlClient.SqlClientPermission,
System.Data, Version=1.0.5000.0, Culture=neutral,
PublicKeyToken=b77a5c561934e089 failed." }

Esto ocurre porque SharePoint, por razones de seguridad, no puede interactuar con sistemas fuera del medio ambiente propio (con SQL en este caso), y por la implementación del la seguridad de acceso de código (CAS, Code Access Security).

En general, cuando se esta desarrollando, es costumbre bajar el nivel de confianza a "Full" (trust level = "Full"), pero para cuando se va a entrar en producción, esto no es recomendable.

Solución
Para evitar el mensaje de error, localice el archivo "wss_minimaltrust.config" de Windows en:


C:\Program Files\Common Files\Microsoft Shared\web server extensions\12\CONFIG\wss_minimaltrust.config


E incluya el siguiente código en la sección "SecurityClasses":


<securityclass description="System.Data.SqlClient.SqlClientPermission, System.Data, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" name="SqlClientPermission">


Y en la sección "PermissionSet", el siguiente código:


<IPermission class="SqlClientPermission" version="1"
Unrestricted="true" />

No hay comentarios: