No se preocupe, no influye en la seguridad de su conexión a Internet, pero influye en cómo el .NET framework trata su aplicación. Entonces, sí, puede activarlo sin peligro, pero si es posible, debe declarar en su código qué nivel de acceso necesita su aplicación para refinar la seguridad. Para explicar los detalles:
La plena confianza significa que su aplicación necesita todos los derechos que proporciona .NET framework. Como desarrollador, declara qué nivel de confianza necesita su aplicación para poder ejecutar, esto se conoce como "seguridad de acceso de código". La seguridad de acceso de código significa que le está diciendo al compilador a través de atributos qué tipo de operación necesita su código para tener éxito.
El .NET framework a su vez estima cuánta confianza se debe otorgar a la aplicación: Por ejemplo, si implementa su aplicación en una computadora remota, a la que se puede acceder a través de una red compartida fuera de su intranet *), entonces .NET Framework le da menos de "plena confianza". Esto se conoce como modelo de seguridad basado en evidencia, que se implementa a través del llamado código administrado.
El código administrado significa que su aplicación .NET se compila en MSIL (M ICRO s de oft I ntermediate L anguage) y "justo a tiempo" (es decir, justo cuando lo ejecutas, a menos que elija create native code explicitly via NGEN before execution) en el lenguaje de máquina específico de la CPU. Esto permite establecer una capa de abstracción adicional, que a su vez permite que .NET Framework controle lo que hace su código y lo permita o, si no, lanzar una excepción de seguridad.
Todo el código que escribe para .NET Framework en uno de los idiomas C# o VB.NET es por código administrado predeterminado. Sin embargo, hay situaciones (muy raras) en las que desea incrustar código no administrado, también conocido como "código no seguro" (en terminología de .NET) también. Una forma es crear una sección "insegura" en su código (que solo menciono aquí para completar, es decir, en caso de que haya encontrado el código fuente).
Como mencioné anteriormente, usted especifica qué hace el código a través de los atributos, pero también puede cambiar las reglas que se aplican en su computadora local para cambiar este comportamiento a través de la configuración de seguridad de .NET. Por lo general, es una buena idea especificar con la mayor precisión posible qué derechos necesita su aplicación y ser lo más restrictivos posible.
Si está interesado, puede encontrar más información aquí: Exploring the .NET Framework Security Model
*) Gracias por su sugerencia, Damien! De hecho, las versiones anteriores del marco daban menos confianza a los recursos en la red (recursos compartidos de red), con el escritorio .NET 4 y las conexiones de intranet locales tienen plena confianza.
Re: red compartida: eso cambió en [.NET 4] (http://msdn.microsoft.com/en-us/library/ff527276.aspx): "Las aplicaciones de intranet locales y de escritorio tienen plena confianza". –
Gracias en esta respuesta detallada –