在MSDN FileSystemWatcher类页面上,它包含一个具有以下类属性的示例:
[PermissionSet(SecurityAction.Demand, Name="FullTrust")]
这样做的目的是什么?什么时候应该包含还是不包括在内?
FileSystemWatcher类帮助页面位于:http: //msdn.microsoft.com/en-us/library/system.io.filesystemwatcher.aspx
FileSystemWatcher类具有不受限制的CAS权限的链接需求.这意味着它将验证其直接调用者(即:您的代码,如果您直接使用该类)具有不受限制的权限.
不幸的是,使用链接需求会打开潜在的安全漏洞,因为间接调用者的权限(即:调用代码的代码)不会被链接需求验证.这意味着具有受限权限的间接调用者可能能够操纵您高度信任的代码,以代表其执行某些恶意代码,否则它将无法完成权限.
防止此类攻击的方法之一是对使用具有链接需求的类型或成员的任何代码应用相同权限的完全需求.这将确保任何间接呼叫者都将受到相同的许可要求,从而确保他们无法通过您自己无法完成的代码执行任何操作.这种类型的完全需求的应用是在FileSystemWatcher的MSDN示例代码中显示的.