Partager via


XmlSecureResolver Constructeurs

Définition

Initialise une nouvelle instance de la classe XmlSecureResolver.

Surcharges

XmlSecureResolver(XmlResolver, PermissionSet)

Initialise une nouvelle instance de la classe XmlSecureResolver avec les XmlResolver et PermissionSet spécifiés.

XmlSecureResolver(XmlResolver, Evidence)

Initialise une nouvelle instance de la classe XmlSecureResolver avec les XmlResolver et Evidence spécifiés.

XmlSecureResolver(XmlResolver, String)

Initialise une nouvelle instance de la classe XmlSecureResolver avec le XmlResolver et l'URL spécifiés.

Remarques

Les trois constructeurs fournissent trois types de restrictions d’accès :

Consultez les rubriques de référence du constructeur pour obtenir des exemples de ces types de restrictions.

XmlSecureResolver(XmlResolver, PermissionSet)

Initialise une nouvelle instance de la classe XmlSecureResolver avec les XmlResolver et PermissionSet spécifiés.

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)

Paramètres

resolver
XmlResolver

Programme de résolution XML inclus dans un wrapper par le XmlSecureResolver.

permissionSet
PermissionSet

Jeu d'autorisations à appliquer au XmlResolver sous-jacent. Le XmlSecureResolver appelle la méthode PermitOnly() sur le jeu d’autorisations avant d’appeler la méthode GetEntity(Uri, String, Type) sur le programme de résolution XML sous-jacent.

Exemples

L’exemple suivant construit un XmlSecureResolver objet à l’aide d’un jeu d’autorisations personnalisé.

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

Voir aussi

S’applique à

XmlSecureResolver(XmlResolver, Evidence)

Initialise une nouvelle instance de la classe XmlSecureResolver avec les XmlResolver et Evidence spécifiés.

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)

Paramètres

resolver
XmlResolver

Programme de résolution XML inclus dans un wrapper par le XmlSecureResolver.

evidence
Evidence

Preuve utilisée pour créer le PermissionSet qui sera appliqué au XmlResolver sous-jacent. Le XmlSecureResolver appelle la méthode PermitOnly() sur le PermissionSet créé avant d’appeler GetEntity(Uri, String, Type) sur le XmlResolver sous-jacent.

Remarques

Voici quelques scénarios possibles et le type de preuve à fournir pour chaque scénario :

  • Si vous travaillez dans un environnement entièrement approuvé, utilisez votre assembly pour créer la preuve :

    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)
    
  • Si vous travaillez dans un environnement semi-approuvé, vous avez du code ou des données provenant d’une source externe et que vous connaissez l’origine de la source externe et que vous avez un URI vérifiable, utilisez l’URI pour créer la preuve :

    
    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)
    
  • Si vous travaillez dans un environnement semi-approuvé et que vous avez du code ou des données provenant d’une source externe, mais que vous ne connaissez pas l’origine de la source externe, soit :

    Définissez le paramètre evidence sur null. Ainsi, aucun accès aux ressources n'est autorisé.

    • ou -

    Si votre application nécessite un accès aux ressources, demandez une preuve à l'appelant.

S’applique à

XmlSecureResolver(XmlResolver, String)

Initialise une nouvelle instance de la classe XmlSecureResolver avec le XmlResolver et l'URL spécifiés.

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)

Paramètres

resolver
XmlResolver

Programme de résolution XML inclus dans un wrapper par le XmlSecureResolver.

securityUrl
String

URL utilisée pour créer le PermissionSet qui sera appliqué au XmlResolver sous-jacent. Le XmlSecureResolver appelle PermitOnly() sur le PermissionSet créé avant d'appeler GetEntity(Uri, String, Type) sur le XmlResolver sous-jacent.

Exemples

Cet exemple utilise le XmlSecureResolver(XmlResolver, String) constructeur pour créer un XmlSecureResolver objet autorisé à accéder à votre site intranet local uniquement.

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

Remarques

Important

Il existe des différences dans l’infrastructure de sécurité pour le code s’exécutant sur la .NET Framework Common Language Runtime (CLR) et pour le code s’exécutant sur le CLR intégré dans Microsoft SQL Server 2005. Cela peut entraîner des cas où le code développé pour le CLR .NET Framework fonctionne différemment lorsqu’il est utilisé sur le CLR intégré SQL Server. L’une de ces différences affecte la XmlSecureResolver classe lorsque vous avez des preuves basées sur une URL (autrement dit, lorsque vous utilisez la CreateEvidenceForUrl méthode ou le XmlSecureResolver(XmlResolver, String) constructeur). Le mécanisme de résolution de stratégie du CLR intégré SQL Server n’utilise pas les informations ou Zone les Url informations. Au lieu de cela, il accorde des autorisations basées sur le GUID que le serveur ajoute lorsque les assemblys sont chargés. Lorsque vous utilisez le XmlSecureResolver CLR intégré SQL Server, fournissez directement les preuves requises à l’aide d’un clR spécifiéPermissionSet.

S’applique à