lunes, 28 de septiembre de 2009

Registrar un ensamblado como Control Seguro en el archivo Web.Config

Un ensamblado –assembly- (.dll) es reconocido como Control Seguro si se incluye una referencia a éste en el Web.Config. Este archivo Web.Config es seguro ya que desde Sharepoint no se puede acceder y modificar el mismo, sino que sólo se puede hacer si se accede al mismo desde el servidor en donde se encuentra ubicado.

Todo Web.Config contiene una etiqueta (tag) <SafeControls>. Esta etiqueta contiene una referencia por cada archivo binario que se considere seguro o de confianza. Para agregar una nueva entrada de confianza (si se observa en detalle el Web.Config se encontrarán algunas entradas existentes requeridas por Sharepoint), se requiere especificar los siguientes argumentos:

  • Assembly: es el nombre del ensamblado. Si el ensamblado tiene un nombre seguro (strong name), éste debe identificarse con su nombre completo compuesto por 4 partes.
  • Namespace: espacio de nombres del ensamblado. Este debería ser el mismo espacio de nombres utilizados en el código.
  • TypeName: nombre del control Web al que se permite la ejecución. Si se quiere que todos los controles del ensamblado sean seguros, se debe utilizar "*".
  • Safe: True o False. Si se indica "True", se marca el ensamblado como seguro. Si se marca como "False" éste se indicará como No Seguro. En general este argumento se marca como "True", salvo excepciones en donde se quiera modificar el estado de un control existente.

A modo de ejemplo, la siguiente entrada a la etiqueta <SafeControl> marca como seguro el archivo DLL que contiene el código para realizar búsquedas en Sharepoint:

<SafeControl Assembly="Microsoft.Office.Server.Search, Version=12.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c" Namespace="Microsoft.Office.Server.Search.WebControls" TypeName="*" Safe="True" />

NOTA: es muy importante que el argumento Assembly se encuentre correctamente identificado con sus correspondientes claves en la GAC.

0 comentarios:

Publicar un comentario