Seguridad de acceso del código para aplicaciones ClickOnce

Las aplicaciones ClickOnce se basan en .NET Framework y están sujetas a las restricciones de seguridad de acceso a código. Por esta razón, es importante que entienda las implicaciones de seguridad de acceso a código y escriba sus aplicaciones ClickOnce según corresponda.

La seguridad de acceso a código es un mecanismo de .NET Framework que ayuda a limitar el acceso que el código tiene a recursos y operaciones protegidas. Debe configurar los permisos de seguridad de acceso del código para la aplicación ClickOnce de modo que se use la zona correspondiente a la ubicación del instalador de la aplicación. En la mayoría de los casos, se puede elegir la zona de Internet para un conjunto limitado de permisos o la zona Intranet local para un conjunto de permisos mayor.

Seguridad predeterminada de acceso al código para ClickOnce

De manera predeterminada, una aplicación ClickOnce recibe los permisos de plena confianza cuando se instala o ejecuta en un equipo cliente.

  • Una aplicación con permisos de plena confianza tiene acceso sin restricciones a los recursos, por ejemplo, al sistema de archivos y al Registro. Esto puede hacer que la aplicación (y el sistema del usuario final) sea susceptible a un ataque de código malintencionado.

  • Cuando una aplicación requiera permisos de plena confianza, se puede solicitar al usuario final que conceda estos permisos a la aplicación. Esto significa que la aplicación no proporciona realmente una experiencia de ClickOnce, y la solicitud puede confundir a los usuarios con menos experiencia.

    Nota

    Al instalar una aplicación desde medios extraíbles, como un CD-ROM, no se le pregunta al usuario. Además, un administrador de red puede configurar la directiva de red de forma que no se pregunte a los usuarios cuando instalen una aplicación desde un origen de confianza. Para obtener más información, vea Información general sobre la implementación de aplicaciones de confianza.

Para restringir los permisos de una aplicación ClickOnce, es posible modificar los permisos de seguridad de acceso del código para una aplicación de modo que se solicite la zona que mejor se ajuste a los permisos que esta requiera. En la mayoría de los casos, se puede seleccionar la zona desde la que se implementa la aplicación. Por ejemplo, si la aplicación es una aplicación empresarial, se puede usar la zona Intranet local. Si se trata de una aplicación de Internet, se puede usar la zona de Internet.

Configurar permisos de seguridad

Siempre se debe configurar la aplicación ClickOnce para que solicite la zona correcta para limitar los permisos de seguridad de acceso del código. Puede configurar los permisos de seguridad en la página Seguridad del Diseñador de proyectos.

La página Seguridad del Diseñador de proyectos contiene una casilla Habilitar configuración de seguridad de ClickOnce. Cuando esta casilla está activada, las solicitudes de permiso de seguridad se agregan al manifiesto de implementación de la aplicación. Durante la instalación, se le pedirá al usuario que conceda los permisos necesarios si se solicitan más permisos de los predeterminados para la zona desde la que se implementa la aplicación. Para obtener más información, consulte Cómo: Habilitar la configuración de seguridad para aplicaciones ClickOnce.

Las aplicaciones implementadas desde diferentes ubicaciones obtienen niveles de permisos diferentes sin solicitarlos. Por ejemplo, cuando una aplicación se implementa desde Internet, recibe un conjunto de permisos muy restrictivo. Cuando se instala desde una intranet local, recibe más permisos y, cuando se instala desde un CD-ROM, recibe permisos de plena confianza.

Como punto de partida para configurar los permisos, puede seleccionar una zona de seguridad en la lista Zona de la página Seguridad. Si es posible implementar la aplicación desde más de una zona, seleccione la zona con menos permisos. Para obtener más información, vea Cómo: Establecer una zona de seguridad para una aplicación ClickOnce.

Las propiedades que se pueden establecer varían según el conjunto de permisos; no todos los conjuntos de permisos tienen propiedades configurables. Para obtener más información sobre la lista completa de permisos que puede solicitar una aplicación, vea System.Security.Permissions. Para obtener más información sobre cómo establecer permisos para una zona personalizada, vea Cómo: Establecer permisos personalizados para una aplicación ClickOnce.

Depurar una aplicación que dispone de permisos restringidos

Como desarrollador, probablemente ejecute su equipo de desarrollo con permisos de plena confianza. Por lo tanto, cuando depure la aplicación, no verá las mismas excepciones de seguridad que pueden ver los usuarios cuando ejecutan la aplicación.

Para detectar estas excepciones, debe depurar la aplicación con los mismos permisos que el usuario final. La depuración con permisos restringidos se puede habilitar en la página Seguridad del Diseñador de proyectos.

Al depurar una aplicación con permisos restringidos, se producirán excepciones para cualquier demanda de seguridad del código que no se haya habilitado en la página Seguridad. Aparecerá una aplicación auxiliar de excepciones, que proporcionará sugerencias sobre la forma de modificar el código para impedir que se produzca la excepción.

Además, al escribir el código, la característica IntelliSense del Editor de código deshabilitará cualquier miembro que no esté incluido en los permisos de seguridad configurados.

Para obtener más información, consulte Cómo: Depurar una aplicación ClickOnce con permisos restringidos.

Permisos de seguridad para las aplicaciones hospedadas en un explorador

Visual Studio proporciona los siguientes tipos de proyecto para las aplicaciones de Windows Presentation Foundation (WPF):

  • Aplicación para Windows de WPF

  • Aplicación de explorador web de WPF

  • Biblioteca de controles personalizados WPF

  • Biblioteca de servicios de WPF

De todos estos tipos de proyecto, sólo se hospedan en un servidor web las aplicaciones de explorador web de WPF y, por lo tanto, requieren una configuración de implementación y seguridad especial. La configuración de seguridad predeterminada para este tipo de aplicaciones es la siguiente:

  • Habilitar configuración de seguridad de ClickOnce

  • Aplicación de confianza parcial

  • Zona de Internet (con un conjunto de permisos predeterminado para las aplicaciones seleccionadas de explorador web de WPF)

En el cuadro de diálogo Configuración de seguridad avanzada, la casilla Depurar esta aplicación con el conjunto de permisos seleccionados está activada y deshabilita. Esto se debe a que no puede desactivarse la depuración en zona para las aplicaciones que se hospedan en un explorador. Para obtener más información, vea Información general sobre las aplicaciones de explorador XAML de WPF.

Vea también

Tareas

Cómo: Habilitar la configuración de seguridad para aplicaciones ClickOnce

Cómo: Establecer una zona de seguridad para una aplicación ClickOnce

Cómo: Establecer permisos personalizados para una aplicación ClickOnce

Cómo: Depurar una aplicación ClickOnce con permisos restringidos

Referencia

Página Seguridad, Diseñador de proyectos

Conceptos

Proteger las aplicaciones ClickOnce

Información general sobre la implementación de aplicaciones de confianza