【问题标题】:What is the purpose of the PermissionSet attribute in the MSDN FileSystemWatcher class example?MSDN FileSystemWatcher 类示例中 PermissionSet 属性的用途是什么?
【发布时间】:2010-05-26 16:17:56
【问题描述】:

在 MSDN FileSystemWatcher 类页面上,它包含一个具有以下类属性的示例:

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

这样做的目的是什么?什么时候应该包含或不包含?

FileSystemWatcher 类帮助页面在这里:http://msdn.microsoft.com/en-us/library/system.io.filesystemwatcher.aspx

【问题讨论】:

    标签: c# permissionset


    【解决方案1】:

    FileSystemWatcherhas a link demand for unrestricted CAS permissions。这意味着它将验证其直接调用者(即您的代码,如果您直接使用该类)具有不受限制的权限。

    不幸的是,使用链接请求会带来潜在的安全漏洞,因为间接调用者(即调用您的代码的代码)的权限没有通过链接请求进行验证。这意味着具有受限权限的间接调用者可能能够操纵您高度信任的代码代表它执行恶意操作,否则它没有权限完成。

    防止此类攻击的方法之一是将您自己对相同权限的全部要求应用于使用具有链接要求的类型或成员的任何代码。这将确保任何间接调用者都将受到相同的权限要求,从而确保他们无法通过您的代码做任何他们自己无法做到的事情。 FileSystemWatcher 的 MSDN 示例代码演示了这种全需求的应用。

    【讨论】:

    • 我认为我对它的理解还不够好。该示例在没有“PermissionSet ...”行的情况下运行良好。它如何帮助代码包含它?还有“FullTrust”是什么意思?机器上的管理员权限还是对相关文件/目录的完全访问权限?
    • 该属性不能帮助您的代码运行。相反,它有助于防止它在不应该运行的时候运行。 “FullTrust”是指不受限制的代码访问安全权限。这与授予用户帐户的权限无关。代码访问安全性是 .NET 提供的附加安全层,它允许控制授予运行代码的权限。简介见msdn.microsoft.com/en-us/library/930b76w0(VS.71).aspx
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-08-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-04-18
    相关资源
    最近更新 更多