扫一扫
分享文章到微信
扫一扫
关注官方公众号
至顶头条
作者:Demien Watkins 2007年10月26日
关键字:
一个策略级别包含一个命名权限集列表。每个权限集代表一个信任声明,用于访问各种受保护的资源。命名权限集是代码组按其名称进行引用的权限集。如果满足了代码组的条件,则会授予被引用的命名权限集(请参阅上面的示例)。下面是一些预定义的命名权限集示例:
FullTrust :允许不受限制地访问系统资源。
SkipVerification :允许程序集跳过验证。
Execution :允许代码执行。
Nothing :不授予权限。不授予执行的权限可有效停止代码的运行。
Internet :适合来自 Internet 的代码的权限集。代码将不会收到对文件系统或注册表的访问权限,但可以执行一些有限的用户界面操作,并且可以使用称为独立存储的安全文件系统。
要查看策略级别的权限集,只需在附录 A 提及的 GUI 工具中打开策略级别节点,然后打开权限集文件夹即可。
下面是一个很小的示例程序,它列出了所有策略级别上所有已知的命名权限集:
下面的程序显示了所有策略级别上的命名权限集列表。该应用程序是一个从本地磁盘运行的 C# 程序,因此它会从默认的策略设置中收到一个相当强大的权限集。
using System;
using System.Collections;
using System.Security;
using System.Security.Policy;
namespace SecurityResolver
{
class Sample
{
static void Main(string[] args)
{
IEnumerator i = SecurityManager.PolicyHierarchy();
while(i.MoveNext())
{
PolicyLevel p = (PolicyLevel) i.Current;
Console.WriteLine(p.Label);
IEnumerator np = p.NamedPermissionSets.GetEnumerator();
while (np.MoveNext())
{
NamedPermissionSet pset = (NamedPermissionSet)np.Current;
Console.WriteLine("\tPermission Set: \n\t\t Name: {0}
\n\t\t Description {1}",
pset.Name, pset.Description);
}
}
}
}
}
该程序的输出如下。为简洁和明确起见,已对该输出进行了编辑。
Enterprise
Permission Set:
Name: FullTrust
Description: Allows full access to all resources
Permission Set:
Name: LocalIntranet
Description: Default rights given to applications
on your local intranet
...
Machine
Permission Set:
Name: Nothing
Description: Denies all resources, including the right to execute
...
User
...
Name: SkipVerification
Description: Grants right to bypass the verification
Permission Set:
Name: Execution
Description: Permits execution
...
查看本文来源
如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。