c# .net networking securityexception permissionset

c# - ¿Por qué mi aplicación.NET falla cuando se ejecuta desde una unidad de red?



networking securityexception (6)

¿ Intentó utilizar CasPol para confiar plenamente en un recurso compartido ?

Mi aplicación .NET falla cuando se ejecuta desde una unidad de red, incluso cuando el mismo ejecutable se ejecuta perfectamente desde un disco duro local.

Intenté buscar "Confianza total" así:

try { // Demand full trust permissions PermissionSet fullTrust = new PermissionSet( PermissionState.Unrestricted ); fullTrust.Demand(); // Perform normal application logic } catch( SecurityException ) { // Report that permissions were not full trust MessageBox.Show( "This application requires full-trust security permissions to execute." ); }

Sin embargo, esto no ayuda, con lo cual me refiero a que la aplicación se inicia y nunca se ingresa el bloque catch. Sin embargo, una compilación de depuración muestra que la excepción lanzada es una SecurityException causada por una InheritanceDemand. ¿Algunas ideas?



Es posible que ya haya hecho esto, pero puede usar CasPol.exe para habilitar FullTrust para un recurso compartido de red específico.

Por ejemplo

cd c:/WINDOWS/Microsoft.NET/Framework/v2.0.50727 CasPol.exe -m -ag 1.2 -url file:///N:/your/network/path/* FullTrust

Más información aquí .


Esta es la seguridad integrada por Microsoft en .NET Framework. Es una forma de evitar que el malware se ejecute localmente con privilegios completos, por lo que no puede cambiar esto programáticamente en el código.

Lo que debe hacer es aumentar la confianza de conjuntos específicos. Lo hace en .NET Framework Configuration (Panel de control-> Herramientas administrativas) y debe hacerlo en cada computadora.

Al igual que con cualquier medida de seguridad, es un dolor en el culo, pero ayudará al mundo a estar menos infectado, etc.


Si se trata de .NET 2.0 o superior, se creó ClickOnce para ayudar realmente con esta implementación. Solo despliego a redes compartidas usando eso.


Todo lo que tenía que hacer era marcar los archivos de solo lectura (posiblemente sin relación) y dar todos los permisos excepto el control total a los usuarios autenticados. Me encontré con este problema antes de hacerlo, cuando solo tenía la red compartida para usuarios de dominio.

Descubrí esta solución porque ni el recurso compartido de administrador (/ servidor / C $) ni las acciones de mi PC tenían este problema.

Editar: la aplicación tiene como objetivo .NET 3.5, no SP1 aquí (versión 3.5.7283)