martes, 15 de enero de 2008

Dar permisos totales a una unidad de red para .NET

Bufff, no he sido capaz de mantener el blog actualizado; lo confieso soy un desastre.
Bueno, pequeña 'píldora' para facilitar el desarrollo de aplicaciones con Microsoft. NET.

Cuando intentamos cargar un proyecto de VS.NET project desde una unidad de red (por ejemplo la N:) lo normal es que recibamos el siguiente error:

"The project location is not trused."
"Running the application may result in security exceptions when it attemps to perform actions which require full trust."


Lo que está pasando es que .NET por defecto restringe los permisos a ensamblados en la red.
Para dar permisos totales a estas unidades de red, tenemos que añadir un nuevo "Code Group" especificando en formato URL que queremos otorgarle confianza total. Esto podemos hacerlo mediante la herramienta de configuración de .NET Framework o a través de la línea de comando de la siguiente manera:


c:\>caspol -q -machine -addgroup 1 -url file://n:/* FullTrust -name "Unidad N"

Una vez generado este nuevo grupo, cualquier proceso nuevo .NET que arranquemos dará permisos totales a los ensamblados de la unidad N.

OJO con las posibles implicaciones de seguridad, TODOS los ensamblados de la N cogen permisos totales (confianza)