XmlSecureResolver Classe

Definizione

Consente di proteggere un'altra implementazione di XmlResolver eseguendo il wrapping dell'oggetto XmlResolver e imponendo limitazioni sulle risorse accessibili al XmlResolver sottostante.Helps to secure another implementation of XmlResolver by wrapping the XmlResolver object and restricting the resources that the underlying XmlResolver has access to.

public ref class XmlSecureResolver : System::Xml::XmlResolver
public class XmlSecureResolver : System.Xml.XmlResolver
type XmlSecureResolver = class
    inherit XmlResolver
Public Class XmlSecureResolver
Inherits XmlResolver
Ereditarietà
XmlSecureResolver

Commenti

La classe XmlUrlResolver corrisponde al sistema di risoluzione predefinito per tutte le classi dello spazio dei nomi System.Xml.The XmlUrlResolver class is the default resolver for all classes in the System.Xml namespace. Viene utilizzato per caricare i documenti XML e per risolvere risorse esterne quali entità, DTD o schemi, nonché per importare o includere direttive.It is used to load XML documents and to resolve external resources such as entities, DTDs or schemas, and import or include directives.

È possibile eseguire l'override di questa impostazione XmlResolver predefinita specificando l'oggetto da utilizzare.You can override this default by specifying the XmlResolver object to use. Ad esempio, se si desidera limitare le risorse a cui l'oggetto XmlResolver sottostante può accedere, è possibile utilizzare XmlSecureResolver un oggetto.For example, if you want to restrict the resources that the underlying XmlResolver can access, you can use an XmlSecureResolver object.

XmlSecureResolveresegue il wrapping di un'implementazione concreta di XmlResolver e limita le risorse a cui ha accesso l'oggetto sottostante. XmlResolverXmlSecureResolver wraps around a concrete implementation of XmlResolver and restricts the resources that the underlying XmlResolver has access to. Ad esempio, XmlSecureResolver ha la possibilità di proibire il reindirizzamento tra domini, che si verifica da un riferimento Uniform Resource Identifier incorporato (URI).For example, XmlSecureResolver has the ability to prohibit cross-domain redirection, which occurs from an embedded Uniform Resource Identifier (URI) reference.

Quando si costruisce XmlSecureResolver un oggetto, si fornisce un' XmlResolver implementazione valida insieme a un URL, un'istanza di un oggetto di evidenza o un set di autorizzazioni, utilizzato da per XmlSecureResolver determinare la sicurezza.When you construct an XmlSecureResolver object, you provide a valid XmlResolver implementation along with a URL, an instance of an evidence object, or a permission set, which is used by the XmlSecureResolver to determine security. Viene generato System.Security.PermissionSet un oggetto o quello esistente viene usato e PermissionSet.PermitOnly viene chiamato su di esso per proteggere l'oggetto sottostante XmlResolver.Either a System.Security.PermissionSet is generated or the existing one is used and PermissionSet.PermitOnly is called on it to help secure the underlying XmlResolver.

Importante

Gli oggetti XmlSecureResolver possono contenere informazioni sensibili quali le credenziali utente.XmlSecureResolver objects can contain sensitive information such as user credentials. È necessario prestare attenzione quando si memorizzano nella cache XmlSecureResolver gli oggetti e non è necessario passare l' XmlSecureResolver oggetto a un componente non attendibile.You should be careful when caching XmlSecureResolver objects and should not pass the XmlSecureResolver object to an untrusted component.

Importante

Esistono differenze nell'infrastruttura di sicurezza per il codice in esecuzione nel .NET Framework Common Language Runtime (CLR) e per il codice in esecuzione in CLR integrato entro Microsoft SQL Server 2005.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. Ciò può causare casi in cui il codice sviluppato per il .NET Framework CLR funziona in modo diverso quando viene utilizzato nel SQL Server CLR integrato.This can lead to cases where code developed for the .NET Framework CLR operates differently when used on the SQL Server integrated CLR. Una di queste differenze influiscono XmlSecureResolver sulla classe quando si dispone di evidenza basata su un URL, ovvero quando si usa il CreateEvidenceForUrl(String) metodo o il XmlSecureResolver costruttore.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(String) method or the XmlSecureResolver constructor). Il meccanismo di risoluzione dei criteri del SQL Server CLR integrato non utilizza le Url informazioni Zone o.The policy resolution mechanism of the SQL Server integrated CLR does not use the Url or Zone information. Al contrario, concede le autorizzazioni in base al GUID aggiunto dal server al caricamento degli assembly.Instead, it grants permissions based on the GUID that the server adds when assemblies are loaded. Quando si usa XmlSecureResolver in SQL Server CLR integrato, fornire le evidenze obbligatorie direttamente usando un oggetto specificato PermissionSet.When you use the XmlSecureResolver in the SQL Server integrated CLR, provide any required evidence directly by using a specified PermissionSet.

Per usare un resolver sicuroTo use a secure resolver

  1. Creare un oggetto XmlSecureResolver utilizzando il set di autorizzazioni corretto.Create an XmlSecureResolver with the correct permission set.

  2. Creare un oggetto XmlReaderSettings che utilizzi l'oggetto XmlSecureResolver.Create an XmlReaderSettings object that uses the XmlSecureResolver object.

    XmlReaderSettings settings = new XmlReaderSettings();
    settings.XmlResolver = myResolver;
    
    Dim settings As New XmlReaderSettings()
    settings.XmlResolver = myResolver
    
  3. Passare l' XmlReaderSettings oggetto Create al metodo durante la creazione dell' XmlReader oggetto.Pass the XmlReaderSettings object to the Create method when you're creating the XmlReader object.

    XmlReader reader = XmlReader.Create("books.xml", settings);
    
    Dim reader As XmlReader = XmlReader.Create("books.xml", settings)   
    

Per limitare l'accesso tramite un URLTo restrict access by using a URL

Utilizzare il XmlSecureResolver(XmlResolver, String) costruttore per creare un XmlSecureResolver oggetto autorizzato ad accedere solo al sito Intranet locale.Use 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/") 

Per limitare l'accesso tramite un set di autorizzazioniTo restrict access by using a permission set

  1. Creare un oggetto WebPermission.Create a WebPermission object.

    WebPermission myWebPermission = new WebPermission(PermissionState.None);
    
    Dim myWebPermission As New WebPermission(PermissionState.None)
    
  2. Specificare gli URL a cui si desidera consentire l'accesso.Specify the URLs that you want to allow access to.

    myWebPermission.AddPermission(NetworkAccess.Connect,"http://www.contoso.com/");
    myWebPermission.AddPermission(NetworkAccess.Connect,"http://litwareinc.com/data/");
    
    myWebPermission.AddPermission(NetworkAccess.Connect, "http://www.contoso.com/")
    myWebPermission.AddPermission(NetworkAccess.Connect, "http://litwareinc.com/data/")
    
  3. Aggiungere autorizzazioni Web all'oggetto PermissionSet.Add the web permissions to the PermissionSet object.

    PermissionSet myPermissions = new PermissionSet(PermissionState.None);
    myPermissions.AddPermission(myWebPermission);
    
    Dim myPermissions As New PermissionSet(PermissionState.None)
    myPermissions.AddPermission(myWebPermission)
    
  4. Utilizzare il XmlSecureResolver(XmlResolver, PermissionSet) costruttore per creare un XmlSecureResolver oggetto utilizzando il set di autorizzazioni.Use the XmlSecureResolver(XmlResolver, PermissionSet) constructor to create an XmlSecureResolver object by using the permission set.

    XmlSecureResolver myResolver = new XmlSecureResolver(new XmlUrlResolver(), myPermissions);
    
    Dim myResolver As New XmlSecureResolver(New XmlUrlResolver(), myPermissions)
    

    Per un XmlSecureResolver altro esempio, vedere la pagina di riferimento.See the XmlSecureResolver reference page for another example.

Per limitare l'accesso tramite evidenzaTo restrict access by using evidence

È possibile limitare l'accesso usando il XmlSecureResolver(XmlResolver, Evidence) costruttore e specificando. EvidenceYou can restrict access by using the XmlSecureResolver(XmlResolver, Evidence) constructor and specifying Evidence. Il tipo Evidence viene utilizzato per creare l'oggetto PermissionSet che verrà applicato all'oggetto XmlResolver sottostante.The Evidence is used to create the PermissionSet that is applied to the underlying XmlResolver. Prima di aprire una risorsa, l'oggetto XmlSecureResolver chiama il metodo PermitOnly sull'oggetto PermissionSet creato.The XmlSecureResolver calls PermitOnly on the created PermissionSet before opening any resources.

Di seguito sono riportati alcuni scenari comuni e il tipo di evidenza da fornire per ognuno di essi:Here are some common scenarios and the type of evidence to provide for each:

  • Se si lavora in un ambiente completamente attendibile, usare l'assembly per creare l'evidenza: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)
    
  • Se si lavora in un ambiente parzialmente attendibile, si dispone di codice o dati provenienti da un'origine esterna e si conosce l'origine dell'origine esterna e si dispone di un URI verificabile, utilizzare l'URI per creare l'evidenza: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)
    
  • Se si usa un ambiente semi-trusted e si dispone di codice o dati provenienti da un'origine esterna, ma non si conosce l'origine dell'origine esterna, effettuare una delle operazioni seguenti: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:

    Impostare il parametro evidence su null.Set the evidence parameter to null. In tal modo si impedisce l'accesso alle risorse.This allows no access to resources.

    -oppure--or-

    Se l'applicazione richiede accesso alle risorse, richiedere l'evidenza dal chiamante.If your application requires some access to resources, request evidence from the caller.

Per utilizzare il resolver sicuro per caricare un foglio di stile XSLTTo use the secure resolver to load an XSLT style sheet

  1. Creare un oggetto XmlSecureResolver utilizzando il set di autorizzazioni corretto.Create an XmlSecureResolver with the correct permission set.

  2. Passare l'oggetto XmlSecureResolver al metodo Load .Pass the XmlSecureResolver to the Load method.

    XslCompiledTransform xslt = new XslCompiledTransform();
    xslt.Load("http://serverName/data/xsl/sort.xsl", null, myResolver);
    
    Dim xslt As New XslCompiledTransform()
    xslt.Load("http://serverName/data/xsl/sort.xsl", Nothing, myResolver)
    

Note per gli eredi

Questa classe ha una richiesta di ereditarietà.This class has an inheritance demand. L' XmlSecureResolver attendibilità totale è necessaria per ereditare dalla classe.Full trust is required to inherit from the XmlSecureResolver class.

Costruttori

XmlSecureResolver(XmlResolver, Evidence)

Inizializza una nuova istanza della classe XmlSecureResolver con gli oggetti XmlResolver e Evidence specificati.Initializes a new instance of the XmlSecureResolver class with the XmlResolver and Evidence specified.

XmlSecureResolver(XmlResolver, PermissionSet)

Inizializza una nuova istanza della classe XmlSecureResolver con gli oggetti XmlResolver e PermissionSet specificati.Initializes a new instance of the XmlSecureResolver class with the XmlResolver and PermissionSet specified.

XmlSecureResolver(XmlResolver, String)

Inizializza una nuova istanza della classe XmlSecureResolver con l'oggetto XmlResolver e l'URL forniti.Initializes a new instance of the XmlSecureResolver class with the XmlResolver and URL provided.

Proprietà

Credentials

Imposta le credenziali usate per autenticare le richieste Web.Sets credentials used to authenticate web requests.

Metodi

CreateEvidenceForUrl(String)

Crea l'evidenza usando l'URL fornito.Creates evidence using the supplied URL.

Equals(Object)

Determina se l'oggetto specificato è uguale all'oggetto corrente.Determines whether the specified object is equal to the current object.

(Ereditato da Object)
GetEntity(Uri, String, Type)

Esegue il mapping di un URI a un oggetto contenente la risorsa effettiva.Maps a URI to an object that contains the actual resource. Questo metodo imposta temporaneamente l'oggetto PermissionSet creato nel costruttore chiamando il metodo PermitOnly() prima di chiamare GetEntity sull'oggetto XmlResolver sottostante per aprire la risorsa.This method temporarily sets the PermissionSet created in the constructor by calling PermitOnly() before calling GetEntity on the underlying XmlResolver to open the resource.

GetEntityAsync(Uri, String, Type)

Esegue in modo asincrono il mapping di un URI a un oggetto contenente la risorsa effettiva.Asynchronously maps a URI to an object that contains the actual resource.

GetHashCode()

Funge da funzione hash predefinita.Serves as the default hash function.

(Ereditato da Object)
GetType()

Ottiene l'oggetto Type dell'istanza corrente.Gets the Type of the current instance.

(Ereditato da Object)
MemberwiseClone()

Crea una copia superficiale dell'oggetto Object corrente.Creates a shallow copy of the current Object.

(Ereditato da Object)
ResolveUri(Uri, String)

Risolve l'URI assoluto a partire dagli URI di base e relativo, chiamando ResolveUri sull'oggetto XmlResolver sottostante.Resolves the absolute URI from the base and relative URIs by calling ResolveUri on the underlying XmlResolver.

SupportsType(Uri, Type)

Consente al resolver di restituire tipi diversi da Stream.Enables the resolver to return types other than Stream.

(Ereditato da XmlResolver)
ToString()

Restituisce una stringa che rappresenta l'oggetto corrente.Returns a string that represents the current object.

(Ereditato da Object)

Si applica a