Compartir a través de


Implementación de elementos web en SharePoint Foundation

Última modificación: jueves, 01 de septiembre de 2011

Hace referencia a: SharePoint Foundation 2010

En este artículo
Consideraciones de implementación
Consideraciones de permisos de seguridad
Nombre seguro de un ensamblado de elementos web
Creación de una entrada SafeControl
Creación de un archivo .webpart

Microsoft SharePoint Foundation requiere que un elemento web se implemente en la galería de elementos web antes de poder agregarlo a una página web. En esta sección se describen las diferencias entre la carpeta bin y la memoria caché global de ensamblados (GAC), las consideraciones sobre los permisos de seguridad, cómo asignar un nombre seguro a un ensamblado para la implementación, cómo crear una entrada SafeControl y, por último, cómo crear un archivo de definición de elementos web para implementar el elemento web.

Consideraciones de implementación

Existen varias ubicaciones en un sitio de SharePoint donde podrá implementar un ensamblado de elementos web.

  • Galería de soluciones: la galería de soluciones es la ubicación recomendada para implementar un elemento web mediante una solución de espacio aislado. Proporciona supervisión y seguridad para los elementos web de forma predeterminada. Para obtener más información sobre las soluciones de espacio aislado, vea Soluciones de espacio aislado.

  • Directorio bin: el directorio bin es una carpeta almacenada en el directorio raíz de la aplicación web. La ubicación de esta carpeta viene determinada cuando se crea el sitio web de Internet Information Services (IIS). En SharePoint Foundation, esto puede suceder ya sea a través del sitio de Administración central, o bien si se crea manualmente un nuevo sitio web en el Administrador IIS.

    Nota importanteImportante

    Si no existe un directorio bin se debe agregar uno manualmente. No almacene los elementos web en el directorio local _app_bin, que está reservado para que lo utilice Microsoft.

    Para obtener más información, consulte Búsqueda de la raíz de la aplicación web.

  • Caché global de ensamblados: ubicación global donde los ensamblados firmados se pueden implementar. La memoria caché global de ensamblados permite compartir ensamblados entre varias aplicaciones. La memoria caché global de ensamblados se instala automáticamente con el tiempo de ejecución de .NET. Los componentes se suelen almacenar en la carpeta C:\WINNT\Assembly.

Cada ubicación de implementación tiene ventajas y desventajas, como se describe en la siguiente tabla:

Ubicación de la implementación

Ventajas

Desventajas

Galería de soluciones

De manera predeterminada, el código implementado en la Galería de soluciones se ejecuta en una confianza parcial. El código de la Galería de soluciones también tiene supervisión de uso de recursos para garantizar el mantenimiento de la granja de servidores. La Galería de soluciones es específica de una colección de sitios.

No todo el modelo de objetos en SharePoint Foundation está disponible en la Galería de soluciones.

Directorio bin

Los ensamblados se ejecutan con confianza parcial. El código que se ejecuta desde este directorio tiene un nivel bajo de permisos de seguridad de acceso a código (CAS). Puesto que los administradores deben conceder de forma explícita los permisos que se han concedido a un elemento web para que pueda funcionar correctamente, a menudo prefieren que los ensamblados se ejecuten en el directorio bin con un conjunto conocido de permisos CAS necesarios.

Un directorio bin es específico de una aplicación web. Esto facilita aislar el código en una aplicación web en particular.

Con el fin de que el elemento web se ejecute en varias aplicaciones web, deberá implementarlo en la caché de ensamblados global.

caché de ensamblados global

De forma predeterminada, los ensamblados se ejecutan con plena confianza. Se instalan globalmente, por lo que funcionarán en cualquier aplicación web. La caché de ensamblados global puede contener varias versiones del mismo ensamblado.

Normalmente no hay restricciones de CAS en el código instalado en la memoria caché global de ensamblados.

Además, un ensamblado implementado en la GAC se almacena en la memoria caché, por lo que si se vuelve a generar el ensamblado, no se actualizará automáticamente en el sitio de SharePoint. Debe forzar que SharePoint Foundation vuelva a cargar el ensamblado restableciendo Internet Information Services (IIS).

Consideraciones de permisos de seguridad

De forma predeterminada, los permisos de seguridad de acceso a código para el directorio bin son bajos; sólo se permite la pura ejecución. En la mayoría de los casos deberá elevar estos permisos para que el ensamblado se ejecute correctamente, por ejemplo, si el elemento web requiere tener acceso al modelo de objetos de SharePoint.

Existen dos formas de elevar permisos:

  • Método recomendado: cree un nuevo archivo de directivas de confianza y señale el archivo web.config en dirección al nuevo archivo. Esta opción es más complicada pero le ofrece una atribución precisa de los permisos para sus elementos web.

    Para obtener más información acerca de los archivos de directivas de confianza, consulte Protección de elementos web en SharePoint Foundation.

  • Método opcional: eleve el nivel de confianza del directorio bin. En el archivo web.config en la raíz de la aplicación web, hay una etiqueta denominada <trust> con un atributo predeterminado level="WSS_Minimal". Puede cambiar este nivel a WSS_Medium. Aunque esta opción es más sencilla, concede nuevos permisos arbitrarios que quizá no necesite y es menos seguro que crear un nuevo archivo de directivas de confianza.

Nombre seguro de un ensamblado de elementos web

Los nombres seguros usan una clave privada para firmar digitalmente un ensamblado. Los nombres seguros también marcan el ensamblado con una clave pública para validar la firma. Esta técnica supone una protección contra las versiones no autorizadas de un elemento web. Si se produce un error en la clave pública al validar la firma digital, SharePoint Foundation no ejecutará el módulo.

Al implementar un elemento web en la carpeta bin, la práctica recomendable es asignarle al ensamblado un nombre seguro. Al implementar un elemento web en la GAC, el ensamblado debe tener un nombre seguro. No se recomienda el uso de un ensamblado sin un nombre seguro en SharePoint Foundation.

Para firmar un ensamblado, use la herramienta sn.exe que se incluye con el Kit de desarrollo de software (SDK) de Microsoft .NET Framework. Para obtener más información acerca del SDK de .NET Framework, consulte la información sobre SDK, paquetes redistribuibles y Service Packs. La herramienta sn.exe también se usa para extraer la clave pública que se necesita para registrar el control como seguro en la lista SafeControls. Para obtener más información acerca del uso de la herramienta sn.exe, consulte la información sobre la herramienta de nombre seguro (Sn.exe).

Creación de una entrada SafeControl

Una suposición fundamental de la tecnología de SharePoint Foundation es que los usuarios que no sean de confianza pueden cargar y crear páginas ASPX dentro del sistema que ejecuta SharePoint Foundation. Para evitar que los usuarios que no son de confianza agreguen de forma arbitraria código del servidor en las páginas ASPX, SharePoint Foundation proporciona una lista SafeControls.

La lista SafeControls es una lista de controles y elementos web aprobados específica para el sitio de SharePoint que ha designado como seguro para la invocación en cualquier página ASPX dentro del sitio. Esta lista se encuentra en el archivo web.config en la raíz de la aplicación web.

Una entrada SafeControl es una declaración basada en XML de un elemento web que tiene la siguiente forma.

<SafeControl Assembly="AssemblyNameWithoutDLLExtension, Version=AssemblyVersionNumber, Culture=neutral, PublicKeyToken=PublicKeyToken" Namespace="NamespaceOfYourProject" TypeName="*" Safe="True" />

La entrada SafeControl usa el nombre de ensamblado, el espacio de nombres, la información sobre versiones y, si está firmada, también necesita un símbolo de clave pública para comprobar que el control es seguro. Si un ensamblado de elementos web está firmado, podrá utilizar la herramienta de nombres seguros para recuperar el símbolo de clave pública para su uso en la entrada SafeControl. El siguiente comando recuperará el símbolo de clave pública para un ensamblado.

sn -T AssemblyName.dll

Creación de un archivo .webpart

Un archivo de definición de elemento web es un archivo XML simple que contiene la configuración de las propiedades para un solo elemento web. Para importar el elemento web a una página de elementos web, basta con cargar el archivo .webpart o agregar el elemento web a la galería de elementos web. Tras descargar el elemento web, puede mostrarlo agregándolo a una página de sitio. Para mostrar un nombre predeterminado y una descripción para el elemento web una vez importado, deberá incluir las propiedades Title y Description en el archivo de definición del elemento web. Si desea establecer otras propiedades del elemento web durante la importación, también puede definirlas en un archivo .webpart. Un archivo .webpart tiene la siguiente forma.

<?xml version="1.0" encoding="utf-8" ?> 
  <webParts>
     <webPart xmlns="https://schemas.microsoft.com/WebPart/v3">
       <metaData>
         <type name="TypeName, Version=VersionNumber, Culture=neutral, 
         PublicKeyToken=PublicKeyToken" /> 
         <importErrorMessage>Cannot import this Web 
         Part.</importErrorMessage> 
       </metaData>
       <data>
         <properties>
           <property name="Title" type="string">
              WebPartTitle</property>
           <property name="Description" type="string">
              WebPartDescription
           </property>
         </properties>
       </data>
     </webPart>
   </webParts>

SharePoint Foundation también admite archivos .dwp para elementos web. Al exportar un elemento web, puede que vea un archivo .dwp o .webpart. Para obtener más información, vea Actualización de elementos web.

Vea también

Tareas

Tutorial: Creación de un elemento web básico

Conceptos

Protección de elementos web en SharePoint Foundation

Actualización de elementos web