net filewatcher ejemplo c# permissionset

c# - filewatcher - ¿Cuál es el propósito del atributo PermissionSet en el ejemplo de la clase MSDN FileSystemWatcher?



filesystemwatcher windows service (1)

La clase FileSystemWatcher tiene una demanda de enlace para permisos de CAS sin restricciones . Esto significa que verificará que su interlocutor directo (es decir, su código, si está consumiendo la clase directamente) tiene permisos sin restricciones.

Desafortunadamente, el uso de una demanda de enlace abre posibles agujeros de seguridad, ya que los permisos de las personas que llaman indirectamente (es decir, el código que llama a su código) no son verificados por una demanda de enlace. Esto significa que un llamante indirecto con permisos restringidos puede manipular su código altamente confiable para hacer algo infame en su nombre que de otra manera no habría tenido los permisos para cumplir.

Una de las formas de prevenir un ataque de este tipo es aplicar su propia demanda por el mismo permiso a cualquier código que consuma un tipo o miembro con una demanda de enlace. Esto asegurará que todas las personas que llamen indirectamente estarán sujetas a la misma demanda de permisos, lo que garantiza que no puedan hacer nada a través de su código que no hubieran podido hacer por su cuenta. El código de ejemplo de MSDN para FileSystemWatcher demuestra la aplicación de este tipo de demanda total.

En la página de la clase FileSystemWatcher de MSDN, incluye un ejemplo con el siguiente atributo de clase:

[PermissionSet(SecurityAction.Demand, Name="FullTrust")]

¿Cuál es el propósito de esto? ¿Cuándo debería ser incluido o no incluido?

La página de ayuda de la clase FileSystemWatcher está aquí: http://msdn.microsoft.com/en-us/library/system.io.filesystemwatcher.aspx