扫一扫
分享文章到微信
扫一扫
关注官方公众号
至顶头条
作者:Demien Watkins 2007年10月26日
关键字: net
权限代表可执行受保护操作的授权。这些操作通常包括对特定资源的访问。通常,这些操作包括访问资源(如文件)、注册表、网络、用户界面或执行环境等。不涉及实际资源的权限的一个示例是跳过验证功能。
注 System.Security.Permissions.SecurityPermission 类包含一个标志,该标志决定是否允许权限实例的接收者跳过验证。SecurityPermission 类包含了其他类似的权限标志,它们涵盖了核心的运行库技术,如果未正确使用这些技术(如控制为在特定应用程序域中运行的程序集提供的证据的能力),就可能公开安全漏洞。核心运行库技术是由请求调用方来保护的,以使得必需的 SecurityPermission 类设置合适的权限标志。
权限的基本抽象是 IPermission 接口,它要求特定的权限类型实现一组标准的权限操作,如返回与具有相同权限类型的其他权限实例的联合或子集。
可以将权限整理到一个权限集中,该权限集代表对各种资源的访问权限的一种声明。System.Security.PermissionSet 类代表权限的集合。这个类的方法包括 Intersect 和 Union。这些方法采用另一个 PermissionSet 作为参数,并提供了一个 PermissionSet,该 PermissionSet 要么是这两个集合中所有权限的联合,要么是这两个集合中所有权限的交集。(运行库中的权限集合是以一个简单的、未排序的集合表示的。)有了这些工具,安全系统就可以使用权限集,而不必理解每种权限类型的语义了。这使得开发人员可以扩展权限的层次结构,而无需修改安全引挚的功能。
注 每种权限类型都必须派生自 IPermission 接口,该接口要求任何权限类型实现标准的权限操作,如联合、交集、子集和请求方法。这些权限类型不用实现特定于它们所包含的权限状态类型的语义。例如,与一个包含文件名的权限相交所产生的结果,就不同于与一个包含简单布尔值状态的权限相交所产生的结果。当权限集 A 与权限集 B 相交时,如果 A 和 B 包含相同权限类型 X 的不同实例,那么权限集类 A 就会调用 X 实例上的交集方法,而不必知道有关 X 语义的任何内容。
根据在程序集加载时提供给安全系统的证据,安全系统将授予一个权限集,该权限集代表访问各种受保护资源的权限。相反,资源是由权限请求来保护的,该请求会触发一个安全检查,以查看是否将一个特定的权限授予了该资源的所有调用方;如果请求失败,就会引发一个异常。(有一个称为链接请求的特定安全检查,它只检查直接调用方,但通常会检查调用方的整个调用堆栈。)
查看本文来源如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。
现场直击|2021世界人工智能大会
直击5G创新地带,就在2021MWC上海
5G已至 转型当时——服务提供商如何把握转型的绝佳时机
寻找自己的Flag
华为开发者大会2020(Cloud)- 科技行者