.net security

Ejecución de ensamblados.NET "parcialmente confiables" desde un recurso compartido de red



security (4)

Con .NET 3.5 SP1, los ensamblados .NET que se ejecutan desde recursos compartidos UNC tienen permisos completos.

Vea Permitir que .exes de Brad Abrams se ejecute en una red compartida para soluciones y discusiones, y finalmente el seguimiento .NET 3.5 SP1 permite que el código administrado se inicie desde un recurso compartido de red .

Cuando intento ejecutar un ensamblado .NET ( boo.exe ) desde un recurso compartido de red (asignado a una unidad), falla porque solo es parcialmente confiable:

Unhandled Exception: System.Security.SecurityException: That assembly does not allow partially trusted callers. at System.Security.CodeAccessSecurityEngine.ThrowSecurityException(Assembly asm, PermissionSet granted, PermissionSet refused, RuntimeMethodHandle rmh, SecurityAction action, Object demand, IPermission permThatFailed) at BooCommandLine..ctor() at Program..ctor() at ProgramModule.Main(String[] argv) The action that failed was: LinkDemand The assembly or AppDomain that failed was: boo, Version=0.0.0.0, Culture=neutral, PublicKeyToken=32c39770e9a21a67 The Zone of the assembly that failed was: Intranet The Url of the assembly that failed was: file:///H:/boo-svn/bin/boo.exe

Con las instrucciones de una publicación de blog , agregué una política a la Configuración de .NET confiando totalmente en todos los ensamblados con el file:///H:/* como su URL. Lo verifiqué ingresando el file:///H:/boo-svn/bin/boo.exe URL file:///H:/boo-svn/bin/boo.exe en la herramienta Evaluar ensamblaje en .NET Configuration y señalando que boo.exe tenía el permiso irrestricto (que no tener antes de la política).

Incluso con el permiso, boo.exe no se ejecuta. Sigo teniendo el mismo mensaje de error.

¿Qué puedo hacer para solucionar este problema? ¿Hay alguna otra manera de ejecutar ensambles "parcialmente confiables" a partir de recursos compartidos de red sin tener que cambiar algo para cada ensamblaje que deseo ejecutar?


Creo que desea agregar el atributo AllowPartiallyTrustedCallers a su ensamblado. El mensaje de error implica que algo que está llamando a su ensamblado boo.exe no es completamente confiable, y boo.exe no tiene este atributo que lo permita.


Eche un vistazo al programa ''caspol.exe'' (provisto con tiempos de ejecución .NET). Deberá hacer esto en la máquina desde la que intenta ejecutar la aplicación. No pude ''marcar'' y ensamblar (probablemente solo yo). Sin embargo, al usar caspol y configurar el permiso adecuado para mi aplicación, LocalIntranet_Zone, soluciono mi problema similar.

He escuchado (pero aún no lo he probado), que .NET 3.5 sp1 eliminó este requisito de seguridad estricto (no permite que los ensamblados .NET residan en un recurso compartido de manera predeterminada).