XmlSecureResolverとは? わかりやすく解説

XmlSecureResolver クラス

XmlResolver オブジェクトをラップし、基になっている XmlResolver がアクセスできるリソースを制限することによって、XmlResolver の別の実装のセキュリティ保護を支援します。

名前空間: System.Xml
アセンブリ: System.Xml (system.xml.dll 内)
構文構文

Public Class XmlSecureResolver
    Inherits XmlResolver
Dim instance As XmlSecureResolver
public class XmlSecureResolver : XmlResolver
public ref class XmlSecureResolver : public
 XmlResolver
public class XmlSecureResolver extends XmlResolver
public class XmlSecureResolver extends
 XmlResolver
解説解説

XmlSecureResolver は XmlResolver の具体的な実装をラップし、基になる XmlResolver がアクセスできるリソースを制限します。たとえば、XmlSecureResolver には、埋め込まれた URI (Uniform Resource Identifier) 参照から発生するドメイン間のリダイレクトを禁止する機能が用意されています。

XmlSecureResolver オブジェクトを構築するときに、有効な XmlResolver 実装と URL、System.Security.Policy.Evidence のインスタンス、または、System.Security.PermissionSet を設定します。XmlSecureResolver は、これらを使用してセキュリティを判断します。System.Security.PermissionSet が生成されるか既存の PermissionSet が使用され、その PermissionSet で PermissionSet.PermitOnly が呼び出され、基になる XmlResolver のセキュリティ保護を支援します。

セキュリティに関するメモ重要 :

.NET Framework 共通言語ランタイム (CLR: Common Language Runtime) で実行するコードと、Microsoft SQL Server 2005 内に統合された CLR で実行するコード用のセキュリティ インフラストラクチャには相違点があります。このため、.NET Framework CLR 用に開発されたコードを SQL Server に統合された CLR で使用すると、動作が異なる可能性があります。これらの相違点の 1 つは、URL に基づく証拠を使用している場合に XmlSecureResolver クラスに影響を与えます (これは、CreateEvidenceForUrl メソッドまたは XmlSecureResolver(XmlResolver,String) コンストラクタを使用している場合に発生する可能性があります)。SQL Server に統合された CLR のポリシー解決の機構は、Url 情報や Zone 情報を利用しません。代わりに、SQL Server に統合された CLR は、アセンブリを読み込んだときにサーバーによって追加される GUID に基づいてアクセス許可を与えます。SQL Server に統合された CLR の XmlSecureResolver を使用する場合は、指定された PermissionSet を直接使用する必須の証拠を提供してください。

継承時の注意 このクラスには継承確認要求があります。XmlSecureResolver クラスから継承するには、完全信頼が必要です。詳細については、「継承確認要求」を参照してください。

継承階層継承階層
System.Object
   System.Xml.XmlResolver
    System.Xml.XmlSecureResolver
スレッド セーフスレッド セーフ
この型の public static (Visual Basic では Shared) メンバはすべて、スレッド セーフです。インスタンス メンバの場合は、スレッド セーフであるとは限りません。
プラットフォームプラットフォーム
バージョン情報バージョン情報
参照参照

XmlSecureResolver コンストラクタ (XmlResolver, String)

XmlResolver と URL を指定して、XmlSecureResolver クラスの新しいインスタンスを初期化します。

名前空間: System.Xml
アセンブリ: System.Xml (system.xml.dll 内)
構文構文

Public Sub New ( _
    resolver As XmlResolver, _
    securityUrl As String _
)
Dim resolver As XmlResolver
Dim securityUrl As String

Dim instance As New XmlSecureResolver(resolver,
 securityUrl)
public XmlSecureResolver (
    XmlResolver resolver,
    string securityUrl
)
public:
XmlSecureResolver (
    XmlResolver^ resolver, 
    String^ securityUrl
)
public XmlSecureResolver (
    XmlResolver resolver, 
    String securityUrl
)
public function XmlSecureResolver (
    resolver : XmlResolver, 
    securityUrl : String
)

パラメータ

resolver

XmlSecureResolver によってラップされる XmlResolver。

securityUrl

基になる XmlResolver に適用される System.Security.PermissionSet の作成に使用される URL。XmlSecureResolver は、基になる XmlResolver で GetEntity を呼び出す前に、作成済みの PermissionSet で PermissionSet.PermitOnly を呼び出します。

解説解説
プラットフォームプラットフォーム
バージョン情報バージョン情報
参照参照

XmlSecureResolver コンストラクタ (XmlResolver, PermissionSet)

XmlResolver と System.Security.PermissionSet を指定して、XmlSecureResolver クラスの新しいインスタンスを初期化します。

名前空間: System.Xml
アセンブリ: System.Xml (system.xml.dll 内)
構文構文

Public Sub New ( _
    resolver As XmlResolver, _
    permissionSet As PermissionSet _
)
Dim resolver As XmlResolver
Dim permissionSet As PermissionSet

Dim instance As New XmlSecureResolver(resolver,
 permissionSet)
public XmlSecureResolver (
    XmlResolver resolver,
    PermissionSet permissionSet
)
public:
XmlSecureResolver (
    XmlResolver^ resolver, 
    PermissionSet^ permissionSet
)
public XmlSecureResolver (
    XmlResolver resolver, 
    PermissionSet permissionSet
)
public function XmlSecureResolver (
    resolver : XmlResolver, 
    permissionSet : PermissionSet
)

パラメータ

resolver

XmlSecureResolver によってラップされる XmlResolver。

permissionSet

基になる XmlResolver に適用する System.Security.PermissionSet。XmlSecureResolver は、基になる XmlResolver で GetEntity を呼び出す前に、作成済みの PermissionSet で PermissionSet.PermitOnly を呼び出します。

使用例使用例

カスタマイズされたアクセス許可セットを使用して、XmlSecureResolver オブジェクトを構築する例を次に示します。

public shared function GetFile
 (fileURL as String , resolver as
 XmlResolver) as Object
 
  '  Generate the default PermissionSet using the file URL.
  Dim evidence as Evidence = XmlSecureResolver.CreateEvidenceForUrl(fileURL)
  Dim myPermissions as PermissionSet = SecurityManager.ResolvePolicy(evidence)

  '  Modify the PermissionSet to only allow access to http://www.contoso.com.
  '  Create a WebPermission that only allows access to http://www.contoso.com.
  Dim myWebPermission as WebPermission = new
 WebPermission(NetworkAccess.Connect, "http://www.contoso.com")
  '  Replace the existing WebPermission in myPermissions with the updated
 WebPermission.
  myPermissions.SetPermission(myWebPermission)

  '  Use the modified PermissionSet to construct the XmlSecureResolver.
  Dim sResolver as XmlSecureResolver = new
 XmlSecureResolver(resolver, myPermissions)

  '  Get the object.
  Dim fullUri as Uri = sResolver.ResolveUri(nothing,
 fileURL)
  return sResolver.GetEntity(fullUri, nothing,
 nothing)
end function 
public static Object GetFile (String fileURL,
 XmlResolver resolver) {
 
  // Generate the default PermissionSet using the file URL.
  Evidence evidence = XmlSecureResolver.CreateEvidenceForUrl(fileURL);
  PermissionSet myPermissions = SecurityManager.ResolvePolicy(evidence);

  // Modify the PermissionSet to only allow access to http://www.contoso.com.
  // Create a WebPermission which only allows access to http://www.contoso.com.
  WebPermission myWebPermission = new WebPermission(NetworkAccess.Connect,
 "http://www.contoso.com");
  // Replace the existing WebPermission in myPermissions with the updated
 WebPermission.
  myPermissions.SetPermission(myWebPermission);

  // Use the modified PermissionSet to construct the XmlSecureResolver.
  XmlSecureResolver sResolver = new XmlSecureResolver(resolver,
 myPermissions);

  // Get the object.
  Uri fullUri = sResolver.ResolveUri(null, fileURL);
  return sResolver.GetEntity(fullUri, null,
 null);
} 
Object^ GetFile( String^ fileURL, XmlResolver^ resolver )
{
   // Generate the default PermissionSet using the file URL.
   Evidence^ evidence = XmlSecureResolver::CreateEvidenceForUrl( fileURL );
   PermissionSet^ myPermissions = SecurityManager::ResolvePolicy( evidence );
   
   // Modify the PermissionSet to only allow access to http://www.contoso.com.
   // Create a WebPermission which only allows access to http://www.contoso.com.
   WebPermission^ myWebPermission = gcnew WebPermission(
      NetworkAccess::Connect,"http://www.contoso.com" );
   // Replace the existing WebPermission in myPermissions with the updated
 WebPermission.
   myPermissions->SetPermission( myWebPermission );
   
   // Use the modified PermissionSet to construct the XmlSecureResolver.
   XmlSecureResolver^ sResolver = gcnew XmlSecureResolver( resolver,myPermissions
 );
   
   // Get the object.
   Uri^ fullUri = sResolver->ResolveUri( nullptr, fileURL );
   return sResolver->GetEntity( fullUri, nullptr, nullptr );
}
public static Object GetFile(String fileURL,
 XmlResolver resolver)
{
    // Generate the default PermissionSet using the file URL.
    System.Security.Policy.Evidence evidence = XmlSecureResolver.
        CreateEvidenceForUrl(fileURL);
    PermissionSet myPermissions = System.Security.SecurityManager.
        ResolvePolicy(evidence);
    // Modify the PermissionSet to only allow access to 
    // http://www.contoso.com.
    // Create a WebPermission which only allows access to 
    // http://www.contoso.com.
    WebPermission myWebPermission = new WebPermission(
        NetworkAccess.Connect, "http://www.contoso.com");
    // Replace the existing WebPermission in myPermissions with 
    // the updated WebPermission.
    myPermissions.SetPermission(myWebPermission);
    // Use the modified PermissionSet to construct the XmlSecureResolver.
    XmlSecureResolver sResolver = new XmlSecureResolver(resolver
,
        myPermissions);
    // Get the object.
    Uri fullUri = sResolver.ResolveUri(null, fileURL);
    return sResolver.GetEntity(fullUri, null,
 null);
} //GetFile
プラットフォームプラットフォーム
バージョン情報バージョン情報
参照参照
関連項目
XmlSecureResolver クラス
XmlSecureResolver メンバ
System.Xml 名前空間
CreateEvidenceForUrl
System.Security.Policy.Evidence
System.Net.WebPermission
System.Security.SecurityManager
その他の技術情報
PermitOnly メソッドの使用

XmlSecureResolver コンストラクタ

XmlSecureResolver クラスの新しいインスタンスを初期化します。
オーバーロードの一覧オーバーロードの一覧

名前 説明
XmlSecureResolver (XmlResolver, Evidence) XmlResolver と System.Security.Policy.Evidence を指定して、XmlSecureResolver クラスの新しいインスタンスを初期化します。
XmlSecureResolver (XmlResolver, PermissionSet) XmlResolver と System.Security.PermissionSet を指定して、XmlSecureResolver クラスの新しいインスタンスを初期化します。
XmlSecureResolver (XmlResolver, String) XmlResolver と URL を指定して、XmlSecureResolver クラスの新しいインスタンスを初期化します。
参照参照

関連項目

XmlSecureResolver クラス
XmlSecureResolver メンバ
System.Xml 名前空間

その他の技術情報

PermitOnly メソッドの使用

XmlSecureResolver コンストラクタ (XmlResolver, Evidence)

XmlResolver と System.Security.Policy.Evidence を指定して、XmlSecureResolver クラスの新しいインスタンスを初期化します。

名前空間: System.Xml
アセンブリ: System.Xml (system.xml.dll 内)
構文構文

Public Sub New ( _
    resolver As XmlResolver, _
    evidence As Evidence _
)
Dim resolver As XmlResolver
Dim evidence As Evidence

Dim instance As New XmlSecureResolver(resolver,
 evidence)
public XmlSecureResolver (
    XmlResolver resolver,
    Evidence evidence
)
public:
XmlSecureResolver (
    XmlResolver^ resolver, 
    Evidence^ evidence
)
public XmlSecureResolver (
    XmlResolver resolver, 
    Evidence evidence
)
public function XmlSecureResolver (
    resolver : XmlResolver, 
    evidence : Evidence
)

パラメータ

resolver

XmlSecureResolver によってラップされる XmlResolver。

evidence

基になる XmlResolver に適用される System.Security.PermissionSet の作成に使用される Evidence。XmlSecureResolver は、基になる XmlResolver で GetEntity を呼び出す前に、作成済みの PermissionSet で PermissionSet.PermitOnly を呼び出します。

プラットフォームプラットフォーム
バージョン情報バージョン情報
参照参照

XmlSecureResolver プロパティ


XmlSecureResolver メソッド


パブリック メソッドパブリック メソッド

( プロテクト メソッド も参照)
  名前 説明
パブリック メソッド CreateEvidenceForUrl 指定された URL を使用して、System.Security.Policy.Evidence を作成します。
パブリック メソッド Equals  オーバーロードされます。 2 つの Object インスタンスが等しいかどうかを判断します。 ( Object から継承されます。)
パブリック メソッド GetEntity オーバーライドされます。 実際のリソースを含むオブジェクトに URI を安全に割り当てます。このメソッドは、基になる XmlResolver で GetEntity を呼び出す前に PermissionSet.PermitOnly を呼び出すことで、コンストラクタで作成された System.Security.PermissionSet を一時的に設定してリソースを開きます。
パブリック メソッド GetHashCode  特定の型のハッシュ関数として機能します。GetHashCode は、ハッシュ アルゴリズムや、ハッシュ テーブルのようなデータ構造での使用に適しています。 ( Object から継承されます。)
パブリック メソッド GetType  現在のインスタンスの Type を取得します。 ( Object から継承されます。)
パブリック メソッド ReferenceEquals  指定した複数の Object インスタンスが同一かどうかを判断します。 ( Object から継承されます。)
パブリック メソッド ResolveUri オーバーライドされます。 基になる XmlResolver で ResolveUri を呼び出して、ベース URI と相対 URI から絶対 URI を解決します。
パブリック メソッド ToString  現在の Object を表す String を返します。 ( Object から継承されます。)
プロテクト メソッドプロテクト メソッド
参照参照

関連項目

XmlSecureResolver クラス
System.Xml 名前空間

その他の技術情報

PermitOnly メソッドの使用
方法 : XmlSecureResolver クラスを使用する

XmlSecureResolver メンバ

XmlResolver オブジェクトをラップし、基になっている XmlResolver がアクセスできるリソースを制限することによって、XmlResolver の別の実装のセキュリティ保護を支援します。

XmlSecureResolver データ型で公開されるメンバを以下の表に示します。


パブリック コンストラクタパブリック コンストラクタ
  名前 説明
パブリック メソッド XmlSecureResolver オーバーロードされます。 XmlSecureResolver クラスの新しいインスタンスを初期化します。
パブリック プロパティパブリック プロパティ
パブリック メソッドパブリック メソッド
( プロテクト メソッド も参照)
  名前 説明
パブリック メソッド CreateEvidenceForUrl 指定された URL を使用して、System.Security.Policy.Evidence を作成します。
パブリック メソッド Equals  オーバーロードされます。 2 つの Object インスタンスが等しいかどうかを判断します。 (Object から継承されます。)
パブリック メソッド GetEntity オーバーライドされます。 実際のリソースを含むオブジェクトに URI を安全に割り当てます。このメソッドは、基になる XmlResolver で GetEntity を呼び出す前に PermissionSet.PermitOnly を呼び出すことで、コンストラクタで作成された System.Security.PermissionSet を一時的に設定してリソースを開きます。
パブリック メソッド GetHashCode  特定の型のハッシュ関数として機能します。GetHashCode は、ハッシュ アルゴリズムや、ハッシュ テーブルのようなデータ構造での使用に適しています。 (Object から継承されます。)
パブリック メソッド GetType  現在のインスタンスの Type を取得します。 (Object から継承されます。)
パブリック メソッド ReferenceEquals  指定した複数の Object インスタンスが同一かどうかを判断します。 (Object から継承されます。)
パブリック メソッド ResolveUri オーバーライドされます。 基になる XmlResolver で ResolveUri を呼び出して、ベース URI と相対 URI から絶対 URI を解決します。
パブリック メソッド ToString  現在の Object を表す String を返します。 (Object から継承されます。)
プロテクト メソッドプロテクト メソッド
参照参照

関連項目

XmlSecureResolver クラス
System.Xml 名前空間

その他の技術情報

PermitOnly メソッドの使用
方法 : XmlSecureResolver クラスを使用する



英和和英テキスト翻訳

英語⇒日本語日本語⇒英語

辞書ショートカット

すべての辞書の索引

「XmlSecureResolver」の関連用語











XmlSecureResolverのお隣キーワード
検索ランキング

   

英語⇒日本語
日本語⇒英語
   



XmlSecureResolverのページの著作権

   
日本マイクロソフト株式会社日本マイクロソフト株式会社
© 2026 Microsoft.All rights reserved.

©2026 GRAS Group, Inc.RSS