System.Xml.XmlSecureResolver 类

方法描述

通过包装 XmlResolver 对象和限制基础 XmlResolver 有权访问的资源,帮助保护其他 XmlResolver 实现。

语法定义(C# System.Xml.XmlSecureResolver 类 的用法)

[PermissionSetAttribute(SecurityAction.InheritanceDemand, Name = "FullTrust")]
public class XmlSecureResolver : XmlResolver

构造函数

构造函数名称 构造函数描述
XmlSecureResolver(XmlResolver, PermissionSet) 使用指定的 XmlResolver 和 System.Security.PermissionSet 初始化 XmlSecureResolver 类的一个新实例。
XmlSecureResolver(XmlResolver, Evidence) 使用指定的 XmlResolver 和 System.Security.Policy.Evidence 初始化 XmlSecureResolver 类的一个新实例。
XmlSecureResolver(XmlResolver, String) 使用所提供的 XmlResolver 和 URL 初始化 XmlSecureResolver 类的一个新实例。

成员/方法

方法名称 方法描述
CreateEvidenceForUrl 使用所提供的 URL 创建 System.Security.Policy.Evidence。
Equals(Object) 确定指定的 Object 是否等于当前的 Object。 (继承自 Object。)
Finalize 允许对象在“垃圾回收”回收之前尝试释放资源并执行其他清理操作。 (继承自 Object。)
GetEntity 将 URI 安全地映射到包含实际资源的对象。 此方法在对基础 XmlResolver 调用 GetEntity 之前,先调用 PermissionSet.PermitOnly,以临时设置构造函数中创建的 System.Security.PermissionSet,从而打开该资源。 (重写 XmlResolver.GetEntity(Uri, String, Type)。)
GetHashCode 用作特定类型的哈希函数。 (继承自 Object。)
GetType 获取当前实例的 Type。 (继承自 Object。)
MemberwiseClone 创建当前 Object 的浅表副本。 (继承自 Object。)
ResolveUri 通过在基础 XmlResolver 上调用 ResolveUri,从基 URI 和相对 URI 中解析绝对 URI。 (重写 XmlResolver.ResolveUri(Uri, String)。)
SupportsType 此方法使解析程序能够返回其他类型,而不只是 Stream。 (继承自 XmlResolver。)
ToString 返回表示当前对象的字符串。 (继承自 Object。)

提示和注释

XmlSecureResolver 包装 XmlResolver 的具体实现,并限制基础 XmlResolver 有权访问的资源。 例如,XmlSecureResolver 能够禁止由嵌入式统一资源标识符 (URI) 引用而引起的跨域重定向。

构造 XmlSecureResolver 对象时,应提供有效的 XmlResolver 实现,还应提供 URL、System.Security.Policy.Evidence 的实例或一个 System.Security.PermissionSet,后者由 XmlSecureResolver 用来确定安全性。 或者生成一个 System.Security.PermissionSet,或者使用现有的权限集并调用其 PermissionSet.PermitOnly,以便帮助保护基础 XmlResolver 的安全性。

安全说明

XmlSecureResolver 对象可能包含敏感信息,如用户凭据。 缓存 XmlSecureResolver 对象时应小心,不要将 XmlSecureResolver 对象传递给不受信任的组件。

重要事项

对于 .NET Framework 公共语言运行时 (CLR) 上运行的代码和 Microsoft SQL Server 2005 内部集成的 CLR 上运行的代码来说,由于安全基础结构中存在差异, 因此会出现以下情况:在 SQL Server 集成的 CLR 上使用为 .NET Framework CLR 开发的代码时,要采用不同的运行方式。 当您有基于 URL 的证据时,这些差异之一会影响 XmlSecureResolver 类(您使用 CreateEvidenceForUrl 方法或 XmlSecureResolver(XmlResolver, String) 构造函数时会发生这种情况。) SQL Server 集成 CLR 的策略解析机制不使用 Url 或 Zone 信息。 SQL Server 集成 CLR 根据加载程序集时服务器添加的 GUID 授予权限。 当您在 SQL Server 集成 CLR 中使用 XmlSecureResolver 时,请使用指定的 PermissionSet 直接提供所有必需的证据。

对继承者的说明

该类有继承需求。 从 XmlSecureResolver 类继承需要完全信任。 有关更多信息,请参见 继承需求。

System.Xml.XmlSecureResolver 类例子


继承层次结构

System.Object

System.Xml.XmlResolver

System.Xml.XmlSecureResolver

命名空间

namespace: System.Xml

程序集: System.Xml(在 System.Xml.dll 中)

线程安全

此类型的任何公共 static(在 Visual Basic 中为 Shared) 成员都是线程安全的。但不保证所有实例成员都是线程安全的。

版本信息

.NET Framework 受以下版本支持:4、3.5、3.0、2.0、1.1 .NET Framework Client Profile 受以下版本支持:4、3.5 SP1

适用平台

Windows 7, Windows Vista SP1 或更高版本, Windows XP SP3, Windows XP SP2 x64 Edition, Windows Server 2008(不支持服务器核心), Windows Server 2008 R2(支持 SP1 或更高版本的服务器核心), Windows Server 2003 SP2 .NET Framework 并不是对每个平台的所有版本都提供支持。有关支持的版本的列表,请参见.NET Framework 系统要求。