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" />

lunes, 4 de mayo de 2009

Parte II: Autenticación por Formularios. Configuración

Para configurar el proveedor de membresía y roles utilizaremos Visual Studio, ya que nos da una forma simple de acceder al sitio web de administración de ASP.NET 2.0 y podremos probar antes de pasar estas configuraciones al SharePoint.

A continuación se detallan los pasos a seguir:

1. Crear un nuevo proyecto del tipo aplicación web.






2. Editar el archivo web.config agregando en el nodo connectionStrings la cadena de conexión a la base de datos que creamos en la Parte I como sigue:







3. Una vez configurado el connectionstring, configuramos el membership provider y el role provider:








4. Ahora lo que debemos hacer es configurar que el tipo de autenticación sea Forms, para ello abrimos el sitio de administración de ASP.NET 2.0, que se encuentra en el menú WebSite, ASP. NET Configuration:




5. Una vez en el sitio, abrir el tab Seguridad, hacer clic en Seleccionar tipo de autenticación y finalmente elegir la opción "Desde Internet". Para guardar los cambios, clic en "Listo".



Se deberán otorgar permisos de db_owner a las cuentas de ApplicationPool de las
aplicaciones web de usuarios (portal), de Administración Central y de Servicio
(farm account), ya que de otro modo no tendrás acceso (posteriormente) a la base
de datos de FBA.


6. Crear un usuario de prueba, para ello en el ASP.NET Configuration, en el tab Seguridad hacemos clic en Crear Usuario.



Ya tenemos el código que nos va a servir como base para las diferentes aplicaciones web de WSS, tenemos también la base de datos para los usuarios que autentiquemos por FBA y un usuario que nos servirá para hacer estas pruebas, así que tenemos que crear y configurar las aplicaciones web.


jueves, 16 de abril de 2009

Parte I: Autenticación por Formularios. Base de Datos

Esta es la primer parte de una serie de publicaciones sobre como configurar la autenticación por formularios para una aplicación web en SharePoint.

ASP.NET incluye una herramienta, Aspnet_regsql.exe, que instala la base de datos de SQL Server que utilizan los proveedores de SQL Server.

La herramienta Aspnet_regsql.exe se encuentra en la carpeta unidad:\WINDOWS\Microsoft.NET
\Framework\númeroDeVersión del servidor Web. Aspnet_regsql.exe se utiliza para crear la base de datos de SQL Server y para agregar o quitar opciones en una base de datos existente.

Para agregar entonces una base de datos de membresía para poder configurar una autenticación por formularios para nuestra web application en SharePoint, debemos seguir los siguientes pasos:

1. Abrir una ventana de comando y ejecutar aspnet_regsql.exe
2. Este comando abrirá un wizard el cual se muestra la ventana de bienvenida donde se hará clic en el botón .




3. Seleccionar "Configure SQL Server for application services" y clic en "Siguiente>




4. Ingresar el nombre del servidor de base de datos y donde dice Database ingresar el nombre de la base de datos de membresía. Hacer clic en el botón "Siguiente"



5. A continuación se mostrará una ventana de confirmación de la configuración, si está todo OK, hacer clic en Siguiente hasta que finalicemos el asistente.

Al finalizar quedará creada en el servidor de base de datos que utilizaremos para autenticar usuarios.