Cómo conceder permisos a un ensamblado personalizado al que se hace referencia en un informe en Reporting Services


Resumen


En este artículo se describe un problema que se produce cuando se tiene acceso a un ensamblado personalizado en el informe que no tiene permisos suficientes en los recursos de su entorno. El artículo también proporciona los pasos para conceder permisos a los ensamblados personalizados que se usan en los informes. Para ello, siga estos pasos:
  1. Aserción permisos en el ensamblado personalizado.
  2. Hacer que el ensamblado personalizado esté disponible para el diseñador de informes y para el servidor de informes.
  3. Haga referencia al ensamblado personalizado en el informe.
  4. Modifique la configuración de seguridad de acceso del código para el ensamblado personalizado.

INTRODUCCIÓN


Notifica que los ensamblados personalizados de Access pueden no procesarse correctamente si los ensamblados personalizados no tienen permisos suficientes. En este artículo se describe cómo modificar los archivos de configuración de la Directiva para conceder permisos adicionales a un ensamblado personalizado al que se obtiene acceso mediante un informe.volver al principio

Más información


Después de crear un ensamblado personalizado mediante Microsoft .NET Framework y, a continuación, obtener acceso al ensamblado personalizado en el informe y obtener una vista previa del informe en el diseñador de informes, es posible que el informe no se procese correctamente. Sin embargo, si ejecuta el mismo informe en el modo de DebugLocal en el diseñador de informes o si visualiza el informe con el administrador de informes, el siguiente error se puede representar en el informe en lugar de la salida del ensamblado personalizado al que se hace referencia:
#Error
Además, puede recibir un mensaje de error similar al siguiente en el diseñador de informes cuando ejecute el informe en modo DebugLocal:
Error en la solicitud de permiso de tipo System. Security. Permissions. FileIOPermission, mscorlib, version = 1.0.5000.0, Culture = neutral, PublicKeyToken = b77a5c561934e089.
Este problema puede ocurrir cuando los ensamblados personalizados a los que se hace referencia en el informe no tienen permisos suficientes. Nota Si obtiene una vista previa del informe en el diseñador de informes, el informe ejecuta todas las expresiones de informe mediante el conjunto de permisos FullTrust. El informe no utiliza la configuración de la Directiva de seguridad. Para conceder los permisos necesarios a un ensamblado personalizado, siga estos pasos:
  1. Aserción permisos en el ensamblado personalizado.
  2. Hacer que el ensamblado personalizado esté disponible para el diseñador de informes y para el servidor de informes.
  3. Haga referencia al ensamblado personalizado en el informe.
  4. Modifique la configuración de seguridad de acceso del código para el ensamblado personalizado.

Aserción permisos en el ensamblado personalizado

Para adquirir los permisos necesarios para ejecutar el código en el ensamblado personalizado, debe declarar los permisos necesarios en el código de ensamblado personalizado. Nota Los ejemplos proporcionados en esta sección usan código C#. Por ejemplo, si tiene acceso a los datos de las tablas de Microsoft SQL Server mediante el espacio de nombres "System. Data. SQLClient" en el ensamblado personalizado, debe agregar el código siguiente al ensamblado personalizado antes de usar el espacio de nombres "System. Data. SQLClient":
System.Data.SqlClient.SqlClientPermission pSql = new SqlClientPermission(System.Security.Permissions.PermissionState.Unrestricted);pSql.Assert();
Si tiene acceso a un archivo en el ensamblado personalizado, debe agregar el código siguiente al ensamblado personalizado antes de tener acceso al archivo:
FileIOPermission filePerm = new FileIOPermission(FileIOPermissionAccess.Read, "C:\TestFile");filePerm.Assert();
De forma similar, si tiene acceso a un servicio Web en el ensamblado personalizado, debe agregar código similar al siguiente para declarar los permisos Web:
System.Text.RegularExpressions.Regex urlRegEx = new System.Text.RegularExpressions.Regex(@"http://www\.webcontinuum\.net/.*");System.Net.WebPermission p = new System.Net.WebPermission(NetworkAccess.Connect,urlRegEx);p.Assert();
Para obtener más información sobre la aserción de permisos en el ensamblado personalizado, visite el siguiente sitio web de MSDN:volver al principio

Hacer que el ensamblado personalizado esté disponible para el diseñador de informes y para el servidor de informes

Para que el ensamblado personalizado esté disponible para el diseñador de informes y para el servidor de informes, debe copiar el ensamblado personalizado en las carpetas siguientes:
  • Unidad de instalación: \Archivos de Programa\microsoft SQL Server\80\Tools\Report Designer
  • Unidad de instalación: \Archivos de Programa\microsoft SQL Server\MSSQL\Reporting Services\ReportServer\bin
volver al principio

Hacer referencia al ensamblado personalizado en el informe

Para hacer referencia a un ensamblado personalizado en el informe, siga estos pasos:
  1. Abra el proyecto de informe en Microsoft Visual Studio .NET 2003.
  2. Abra el informe que debe hacer referencia al ensamblado personalizado.
  3. En el menú Informe , haga clic en propiedades de informe.
  4. En el cuadro de diálogo propiedades del informe , haga clic en la pestaña referencias .
  5. En referencias, haga clic en el botón de puntos suspensivos situado junto al encabezado de la columna nombre del ensamblado .
  6. En el cuadro de diálogo Agregar referencias , haga clic enexaminar.
  7. En el cuadro de diálogo Seleccionar componente , busque el ensamblado personalizado y haga clic en él y, a continuación, haga clic enabrir.
  8. En el cuadro de diálogo Agregar referencias , haga clic enAceptar.
  9. En el cuadro de diálogo propiedades del informe , haga clic enAceptar.
volver al principio

Modificar la configuración de seguridad de acceso del código para el ensamblado personalizado

Para conceder los permisos necesarios al ensamblado personalizado, debe modificar la configuración de seguridad de acceso del código en los archivos de configuración de directivas que corresponden al diseñador de informes y al servidor de informes. Para ello, siga estos pasos:
  1. Cree el elemento de conjunto de permisos y el elemento de grupo de código para el ensamblado personalizado que especifica los permisos necesarios. Para ello, siga estos pasos:
    1. Haga clic en Inicio, seleccione Configuración y haga clic en Panel de control.
    2. En el panel de control, haga doble clic en herramientas administrativas.
    3. En la ventana herramientas administrativas, haga doble clic en configuración de Microsoft .NET Framework 1,1.
    4. En el panel izquierdo de la ventana Configuración de .NET 1,1, expanda Directiva de seguridad en tiempo de ejecución.
    5. En Directiva de seguridad en tiempo de ejecución, expanda equipo.
    6. En equipo, haga clic con el botón secundario en conjuntos de permisosy luego haga clic en nuevo.
    7. En la página identificar el nuevo conjunto de permisos , haga clic en crear un nuevo conjunto de permisos.
    8. Escriba TestPermissions en el cuadro nombre y, a continuación, haga clic en siguiente.
    9. En la página asignar permisos individuales a un conjunto de permisos , haga clic en seguridad en la lista permisos disponibles y, a continuación, haga clic en Agregar.
    10. En el cuadro de diálogo configuración de permisos , haga clic en conceder a los ensamblados los siguientes permisos de seguridady, a continuación, haga clic para activar las casillas siguientes:
      • Habilitar la ejecución de ensamblados
      • Declarar cualquier permiso que se haya concedido
      Nota También puede activar la otra configuración de permisos de la lista según sus necesidades.
    11. Haga clic en Aceptar.
    12. En la página asignar permisos individuales a un conjunto de permisos , agregue los permisos adicionales de la lista permisos disponibles a la lista permisos asignados .
    13. Haga clic en Finalizar.
    14. En la ventana Configuración de .NET 1,1, expanda grupos de código en Machine.
    15. En grupos de código, haga clic con el botón secundario en All_Codey luego haga clic en nuevo.
    16. En la página identificar el nuevo grupo de códigos , haga clic en crear un nuevo grupo de códigos, escriba TestCodeGroup en el cuadro nombre y, a continuación, haga clic en siguiente.
    17. En la página elegir un tipo de condición , haga clic en dirección URL en la lista Elija el tipo de condición para este grupo de códigos .
    18. Escriba la ruta de acceso absoluta del ensamblado personalizado (unidad de instalación: \Archivos de Programa\microsoft SQL Server\80\Tools\Report Designer \nombre de ensamblado personalizado, por ejemplo) en la carpeta diseñador de informes del cuadro dirección URL y, a continuación, haga clic en siguiente.
    19. En la página asignar un conjunto de permisos a un grupo de códigos , haga clic en usar conjunto de permisos existentey, a continuación, haga clic en TestPermissions en la lista.
    20. Haga clic en Siguiente y luego en Finalizar.
    El conjunto de permisos y el grupo de código que se corresponde con el ensamblado personalizado se crean según las especificaciones del archivo Security. config en el equipo.
  2. Agregue el conjunto de permisos y el grupo de código que corresponda al ensamblado personalizado en los archivos de configuración de la Directiva de seguridad de su servidor de informes. Para ello, siga estos pasos:
    1. Abra el archivo Security. config, el archivo Rspreviewpolicy. config y el archivo rssrvpolicy. config.Nota La siguiente lista proporciona las ubicaciones predeterminadas del archivo Security. config, el archivo Rspreviewpolicy. config y el archivo rssrvpolicy. config.
      • De forma predeterminada, el archivo Security. config se encuentra en la carpeta Installation Drive: \Windows\Microsoft.NET\Framework\v1.1.4322\config\security.config
      • De forma predeterminada, Rspreviewpolicy. config se encuentra en la carpeta Installation Drive: \Archivos de Programa\microsoft SQL Server\80\Tools\Report Designer\rspreviewpolicy.config.
      • De forma predeterminada, la carpeta rssrvpolicy. config se encuentra en la carpeta Installation Drive: \Archivos de Programa\microsoft SQL Server\MSSQL\Reporting Services\ReportServer\rssrvpolicy.config.
    2. Copie el elemento PermissionSet que corresponde al conjunto de permisos TestPermissions del archivo Security. config.
    3. Pegue el elemento PermissionSet que corresponde al conjunto de permisos TestPermissions en el archivo Rspreviewpolicy. config y el archivo rssrvpolicy. config como el último elemento del elemento NamedPermissionSets .
    4. Copie el elemento CodeGroup que corresponda al grupo de código TestCodeGroup del archivo Security. config.
    5. Pegue el elemento CodeGroup que corresponda al grupo de código TestCodeGroup en el archivo Rspreviewpolicy. config y en el archivo rssrvpolicy. config después del primer elemento CodeGroup .
    6. Quite el elemento PermissionSet que corresponde al conjunto de permisos TestPermissions y el elemento CodeGroup correspondiente al grupo de código TestCodeGroup del archivo Security. config.
    7. Guarde el archivo Security. config, el archivo Rspreviewpolicy. config y el archivo rssrvpolicy. config.
Después de acceder al ensamblado personalizado en el informe y de ejecutar el informe en modo DebugLocal, el informe se representa correctamente.volver al principio

Referencias


Para obtener más información sobre la seguridad de acceso a código en Reporting Services, visite el siguiente sitio web de MSDN: Para obtener más información sobre el uso de ensamblados personalizados con informes en Reporting Services, visite el siguiente sitio web de MSDN: Para obtener más información sobre la depuración de los ensamblados personalizados en Reporting Services, visite el siguiente sitio web de MSDN:volver al principio