Quel est le but de l'attribut PermissionSet dans l'exemple de classe MSDN FileSystemWatcher?
Sur la MSDN Classe FileSystemWatcher page, il comprend un exemple avec la classe suivante attribut:
[PermissionSet(SecurityAction.Demand, Name="FullTrust")]
Quel est le but de tout cela? Quand doit-il être inclus ou non?
De la Classe FileSystemWatcher page d'aide est ici: http://msdn.microsoft.com/en-us/library/system.io.filesystemwatcher.aspx
source d'informationauteur Jeff
Vous devez vous connecter pour publier un commentaire.
De la classe FileSystemWatcher a une demande de liaison sans restriction de CAS des autorisations. Cela signifie qu'il va vérifier que le son direct de l'appelant (c'est à dire: votre code si vous êtes la consommation de la classe) a sans restriction des autorisations.
Malheureusement, l'utilisation d'un lien exigences ouvre les failles de sécurité potentielles, puisque les autorisations indirects appelants (c'est à dire: le code qui appelle votre code) ne sont pas vérifiés par un lien à la demande. Cela signifie qu'indirecte de l'appelant avec des autorisations restreintes peuvent être en mesure de manipuler votre code hautement approuvé à faire quelque chose d'infâme, en son nom, qu'il n'aurait autrement pas eu les autorisations pour accomplir.
L'un des moyens de prévenir une attaque de ce type est d'appliquer une demande complète pour la même autorisation à tout code qui consomme un type ou d'un membre avec un lien à la demande. Cela permettra d'assurer que tout dommage indirect appelants seront soumis à la même demande d'autorisation, de sorte que ils ne peuvent pas faire quoi que ce soit via votre code qu'ils n'auraient pas été en mesure de le faire sur leurs propres. L'Application d'une demande de ce type est ce qui est montré dans la MSDN exemple de code pour le FileSystemWatcher.