Pregunta

Trabajo para una empresa que produce un producto comercial y actualmente estamos tratando de ofrecer una solución que permita a algunos de nuestros clientes más grandes la capacidad de distribuir el lado del cliente de nuestra aplicación a través de ClickOnce.

La intención es que nuestros clientes implementen la instalación de ClickOnce en un recurso compartido de red y luego envíen un enlace al manifiesto de la aplicación a los clientes por correo electrónico u otros medios.

Hemos podido integrar con éxito la producción de la instalación de ClickOnce en nuestra compilación automatizada (utilizando las herramientas de la línea de comandos de Mage), y luego podemos ejecutar con éxito la instalación real en una máquina cliente. Sin embargo, después de la instalación y el inicio, nuestra aplicación lanza una excepción SecurityException en tiempo de ejecución, ya que se le está negando el acceso a FileIOPermission. Nuestra aplicación requiere permisos FullTrust, pero parece que si la ubicación de la base de código del ensamblado en ejecución es un recurso compartido de red, solo se le otorgan permisos LocalIntranet (que no incluyen el permiso de FileIO).

Aquí hay un artículo que aparentemente indica que este es un problema bastante común: http://blogs.msdn.com/shawnfa/archive/ 2004/12/30 / 344554.aspx

En este artículo se proporciona una solución alternativa utilizando la herramienta CasPol, pero tendríamos que ejecutar esto en cada máquina cliente en el entorno de implementación. Eso no es realmente un problema en sí mismo, es más el hecho de que necesita derechos de administrador en la máquina cliente para realizar lo que se está haciendo con la herramienta CasPol, y la mayoría de los clientes en el entorno de nuestros clientes no tendrán estos privilegios.

También se ha publicado un artículo en el mismo blog que parece implicar que la necesidad de ejecutar la corrección CasPol se ha aliviado con el lanzamiento de .NET 3.5 SP1: http: //blogs.msdn. com / shawnfa / archive / 2008/05/12 / fulltrust-on-the-localintranet.aspx

Sin embargo, modifiqué nuestra aplicación para apuntar específicamente a la versión SP1 del marco como se detalla en este artículo: http://msdn.microsoft.com/en-us/library/bb398202 .aspx #

Después de hacer esto, todavía encontramos la misma excepción SecurityException. Entonces apliqué algunas configuraciones específicas de ClickOnce SP1 como se detalla en el artículo, pero todavía no me alegro. Si ejecuto la aplicación directamente desde el recurso compartido de red de publicación, se me conceden los permisos, parece ser que solo en el contexto de ClickOnce se nos rechazan.

¿Alguien más se ha encontrado con problemas similares a estos? Pensé que si hubiera un problema en la versión SP1 del marco con respecto a estos permisos, alguien más lo habría notado antes que nosotros, ya que ni siquiera hemos enviado una solución ClickOnce.

¿Fue útil?

Solución

Creo que he encontrado un problema similar en .NET 4.0 con excepción de seguridad durante el almuerzo. La solución que encontré fue firmar digitalmente el manifiesto con un certificado aprobado (no el que Visual Studio genera por defecto para su proyecto).

Se trata de un conocido "error" (o por diseño) en los manifiestos desplegados de ClickOnce.

¿Se ha firmado tu proyecto?

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top