XmlSecureResolver コンストラクター

定義

XmlSecureResolver クラスの新しいインスタンスを初期化します。Initializes a new instance of the XmlSecureResolver class.

オーバーロード

XmlSecureResolver(XmlResolver, PermissionSet)

XmlSecureResolverXmlResolver を指定して、PermissionSet クラスの新しいインスタンスを初期化します。Initializes a new instance of the XmlSecureResolver class with the XmlResolver and PermissionSet specified.

XmlSecureResolver(XmlResolver, Evidence)

XmlSecureResolverXmlResolver を指定して、Evidence クラスの新しいインスタンスを初期化します。Initializes a new instance of the XmlSecureResolver class with the XmlResolver and Evidence specified.

XmlSecureResolver(XmlResolver, String)

XmlSecureResolver と URL を指定して、XmlResolver クラスの新しいインスタンスを初期化します。Initializes a new instance of the XmlSecureResolver class with the XmlResolver and URL provided.

注釈

3つのコンストラクターは、次の3種類のアクセス制限を提供します。The three constructors provide three types of access restrictions:

これらの種類の制限の例については、コンストラクターリファレンスのトピックを参照してください。See the constructor reference topics for examples of these types of restrictions.

XmlSecureResolver(XmlResolver, PermissionSet)

XmlSecureResolverXmlResolver を指定して、PermissionSet クラスの新しいインスタンスを初期化します。Initializes a new instance of the XmlSecureResolver class with the XmlResolver and PermissionSet specified.

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

パラメーター

resolver
XmlResolver

XmlSecureResolver によってラップされた XML リゾルバー。The XML resolver that is wrapped by the XmlSecureResolver.

permissionSet
PermissionSet

基になっている XmlResolver に適用するアクセス許可セット。The permission set to apply to the underlying XmlResolver. XmlSecureResolver は、基になっている XML リゾルバーで GetEntity(Uri, String, Type) メソッドを呼び出す前に、アクセス許可セットで PermitOnly() メソッドを呼び出します。The XmlSecureResolver calls the PermitOnly() method on the permission set before calling the GetEntity(Uri, String, Type) method on the underlying XML resolver.

次の例ではXmlSecureResolver 、カスタマイズされたアクセス許可セットを使用してオブジェクトを構築します。The following example constructs an XmlSecureResolver object by using a customized permission set.

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.
  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 クラスの新しいインスタンスを初期化します。Initializes a new instance of the XmlSecureResolver class with the XmlResolver and Evidence specified.

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

パラメーター

resolver
XmlResolver

XmlSecureResolver によってラップされた XML リゾルバー。The XML resolver that is wrapped by the XmlSecureResolver.

evidence
Evidence

基になる XmlResolver に適用される PermissionSet の作成に使用される証拠。The evidence used to create the PermissionSet that will be applied to the underlying XmlResolver. XmlSecureResolver は、基になる XmlResolverGetEntity(Uri, String, Type) を呼び出す前に、作成された PermissionSetPermitOnly() メソッドを呼び出します。The XmlSecureResolver calls the PermitOnly() method on the created PermissionSet before calling GetEntity(Uri, String, Type) on the underlying XmlResolver.

注釈

考えられるシナリオと、各シナリオに提供する証拠の種類を次に示します。Here are some possible scenarios and the type of evidence to provide for each scenario:

  • 完全に信頼された環境で作業している場合は、アセンブリを使用して証拠を作成します。If you are working in a fully trusted environment, use your assembly to create the evidence:

    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 を使用して証拠を作成します。If you are working in a semi-trusted environment, you have code or data coming from an outside source, and you know the origin of the outside source and have a verifiable URI, use the URI to create the evidence:

    
    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)
    
  • 信頼性の低い環境で作業していて、外部ソースからのコードまたはデータがあるが、外部ソースの出所がわからない場合は、次のいずれかの方法を使用します。If you are working in a semi-trusted environment and you have code or data coming from an outside source, but you don't know the origin of the outside source, either:

    evidence パラメーターを null に設定します。Set the evidence parameter to null. これは、リソースへのアクセスを禁止します。This allows no access to resources.

    - または --or-

    アプリケーションでリソースへのアクセスが必要な場合は、呼び出し元に証拠を要求します。If your application requires some access to resources, request evidence from the caller.

XmlSecureResolver(XmlResolver, String)

XmlSecureResolver と URL を指定して、XmlResolver クラスの新しいインスタンスを初期化します。Initializes a new instance of the XmlSecureResolver class with the XmlResolver and URL provided.

public:
 XmlSecureResolver(System::Xml::XmlResolver ^ resolver, System::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 リゾルバー。The XML resolver that is wrapped by the XmlSecureResolver.

securityUrl
String

基になる PermissionSet に適用される XmlResolver の作成に使用される URL。The URL used to create the PermissionSet that will be applied to the underlying XmlResolver. XmlSecureResolver は、基になる PermitOnly()PermissionSet を呼び出す前に、作成済みの GetEntity(Uri, String, Type)XmlResolver を呼び出します。The XmlSecureResolver calls PermitOnly() on the created PermissionSet before calling GetEntity(Uri, String, Type) on the underlying XmlResolver.

この例ではXmlSecureResolver(XmlResolver, String) 、コンストラクターを使用XmlSecureResolverして、ローカルイントラネットサイトへのアクセスのみを許可するオブジェクトを作成します。This example uses the XmlSecureResolver(XmlResolver, String) constructor to create an XmlSecureResolver object that is allowed to access your local intranet site only.

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

注釈

重要

.NET Framework 共通言語ランタイム (CLR) で実行されるコードと、Microsoft SQL Server 2005 に統合されている CLR で実行されるコードのセキュリティインフラストラクチャには相違点があります。There are differences in the security infrastructure for code running on the .NET Framework common language runtime (CLR) and for code running on the CLR that is integrated within Microsoft SQL Server 2005. これにより、.NET Framework CLR 用に開発されたコードが、SQL Server 統合 CLR で使用される場合とは動作が異なる場合があります。This can lead to cases where code developed for the .NET Framework CLR operates differently when used on the SQL Server integrated CLR. これらの相違点の 1 XmlSecureResolverつは、URL に基づく証拠がある場合 (つまり、 CreateEvidenceForUrlメソッドまたはXmlSecureResolver(XmlResolver, String)コンストラクターを使用する場合) に、クラスに影響します。One of these differences affects the XmlSecureResolver class when you have evidence that is based on a URL (that is, when you use the CreateEvidenceForUrl method or the XmlSecureResolver(XmlResolver, String) constructor). SQL Server 統合 CLR のポリシー解決機構では、またはUrl Zoneの情報は使用されません。The policy resolution mechanism of the SQL Server integrated CLR does not use the Url or Zone information. 代わりに、アセンブリが読み込まれるときにサーバーによって追加された GUID に基づいてアクセス許可が付与されます。Instead, it grants permissions based on the GUID that the server adds when assemblies are loaded. SQL Server 統合 CLR XmlSecureResolverでを使用する場合は、指定さPermissionSetれたを使用して必要な証拠を直接指定します。When you use the XmlSecureResolver in the SQL Server integrated CLR, provide any required evidence directly by using a specified PermissionSet.

適用対象