XmlSecureResolver コンストラクター

定義

XmlSecureResolver クラスの新しいインスタンスを初期化します。

オーバーロード

名前 説明
XmlSecureResolver(XmlResolver, PermissionSet)

XmlSecureResolverXmlResolverを指定して、PermissionSet クラスの新しいインスタンスを初期化します。

XmlSecureResolver(XmlResolver, Evidence)

XmlSecureResolverXmlResolverを指定して、Evidence クラスの新しいインスタンスを初期化します。

XmlSecureResolver(XmlResolver, String)

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

注釈

3 つのコンストラクターは、次の 3 種類のアクセス制限を提供します。

これらの種類の制限の例については、コンストラクターのリファレンス トピックを参照してください。

XmlSecureResolver(XmlResolver, PermissionSet)

XmlSecureResolverXmlResolverを指定して、PermissionSet クラスの新しいインスタンスを初期化します。

public:
 XmlSecureResolver(System::Xml::XmlResolver ^ resolver, System::Security::PermissionSet ^ permissionSet);
public XmlSecureResolver(System.Xml.XmlResolver resolver, System.Security.PermissionSet permissionSet);
new System.Xml.XmlSecureResolver : System.Xml.XmlResolver * System.Security.PermissionSet -> System.Xml.XmlSecureResolver
Public Sub New (resolver As XmlResolver, permissionSet As PermissionSet)

パラメーター

resolver
XmlResolver

XmlSecureResolverによってラップされる XML リゾルバー。

permissionSet
PermissionSet

基になる XmlResolverに適用するアクセス許可セット。 XmlSecureResolverは、基になる XML リゾルバーで PermitOnly() メソッドを呼び出す前に、アクセス許可セットに対してGetEntity(Uri, String, Type) メソッドを呼び出します。

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


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);
}

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

こちらもご覧ください

適用対象

XmlSecureResolver(XmlResolver, Evidence)

XmlSecureResolverXmlResolverを指定して、Evidence クラスの新しいインスタンスを初期化します。

public:
 XmlSecureResolver(System::Xml::XmlResolver ^ resolver, System::Security::Policy::Evidence ^ evidence);
public XmlSecureResolver(System.Xml.XmlResolver resolver, System.Security.Policy.Evidence evidence);
new System.Xml.XmlSecureResolver : System.Xml.XmlResolver * System.Security.Policy.Evidence -> System.Xml.XmlSecureResolver
Public Sub New (resolver As XmlResolver, evidence As Evidence)

パラメーター

resolver
XmlResolver

XmlSecureResolverによってラップされる XML リゾルバー。

evidence
Evidence

基になるPermissionSetに適用されるXmlResolverの作成に使用される証拠。 XmlSecureResolverは、基になるPermitOnly()PermissionSetを呼び出す前に、作成されたGetEntity(Uri, String, Type)XmlResolver メソッドを呼び出します。

注釈

考えられるシナリオと、各シナリオに提供する証拠の種類を次に示します。

  • 完全に信頼できる環境で作業している場合は、アセンブリを使用して証拠を作成します。

    Evidence myEvidence = this.GetType().Assembly.Evidence;
    XmlSecureResolver myResolver;
    myResolver = new XmlSecureResolver(new XmlUrlResolver(), myEvidence);
    
    Dim myEvidence As Evidence = Me.GetType().Assembly.Evidence
    Dim myResolver As XmlSecureResolver
    myResolver = New XmlSecureResolver(New XmlUrlResolver(), myEvidence)
    
  • 半信頼環境で作業している場合、外部ソースからのコードまたはデータがあり、外部ソースの発信元がわかっていて、検証可能な URI がある場合は、URI を使用して証拠を作成します。

    
    Evidence myEvidence = XmlSecureResolver.CreateEvidenceForUrl(sourceURI);
    XmlSecureResolver myResolver = new XmlSecureResolver(new XmlUrlResolver(), myEvidence);
    
    Dim myEvidence As Evidence = XmlSecureResolver.CreateEvidenceForUrl(sourceURI)
    Dim myResolver As New XmlSecureResolver(New XmlUrlResolver(), myEvidence)
    
  • 半信頼環境で作業していて、外部ソースからのコードまたはデータがあるが、外部ソースの原点がわからない場合は、次のいずれかを行います。

    evidence パラメーターを null に設定します。 これにより、リソースにアクセスできなくなります。

    -又は-

    アプリケーションでリソースへのアクセスが必要な場合は、呼び出し元に証拠を要求します。

適用対象

XmlSecureResolver(XmlResolver, String)

ソース:
XmlSecureResolver.cs
ソース:
XmlSecureResolver.cs
ソース:
XmlSecureResolver.cs
ソース:
XmlSecureResolver.cs
ソース:
XmlSecureResolver.cs

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

public:
 XmlSecureResolver(System::Xml::XmlResolver ^ resolver, System::String ^ securityUrl);
public XmlSecureResolver(System.Xml.XmlResolver resolver, string? securityUrl);
public XmlSecureResolver(System.Xml.XmlResolver resolver, string securityUrl);
new System.Xml.XmlSecureResolver : System.Xml.XmlResolver * string -> System.Xml.XmlSecureResolver
Public Sub New (resolver As XmlResolver, securityUrl As String)

パラメーター

resolver
XmlResolver

XmlSecureResolverによってラップされる XML リゾルバー。

securityUrl
String

基になるPermissionSetに適用されるXmlResolverの作成に使用される URL。 XmlSecureResolverは、基になるPermitOnly()PermissionSetを呼び出す前に、作成されたGetEntity(Uri, String, Type)XmlResolverを呼び出します。

この例では、 XmlSecureResolver(XmlResolver, String) コンストラクターを使用して、ローカル イントラネット サイトにのみアクセスできる XmlSecureResolver オブジェクトを作成します。

XmlSecureResolver myResolver = new XmlSecureResolver(new XmlUrlResolver(), "http://myLocalSite/");
Dim myResolver As New XmlSecureResolver(New XmlUrlResolver(), "http://myLocalSite/")

注釈

Important

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

適用対象