Questo articolo è stato tradotto automaticamente. Per visualizzare l'articolo in inglese, selezionare la casella di controllo Inglese. È possibile anche visualizzare il testo inglese in una finestra popup posizionando il puntatore del mouse sopra il testo.
Traduzione
Inglese

Classe XmlSecureResolver

 

Data di pubblicazione: ottobre 2016

Consente di proteggere un'altra implementazione di XmlResolver eseguendo il wrapping dell'oggetto XmlResolver e imponendo restrizioni sulle risorse accessibili all'oggetto XmlResolver sottostante.

Spazio dei nomi:   System.Xml
Assembly:  System.Xml (in System.Xml.dll)

System.Object
  System.Xml.XmlResolver
    System.Xml.XmlSecureResolver

[PermissionSetAttribute(SecurityAction.InheritanceDemand, Name = "FullTrust")]
[PermissionSetAttribute(SecurityAction.InheritanceDemand, Name = "FullTrust")]
public class XmlSecureResolver : XmlResolver

NomeDescrizione
System_CAPS_pubmethodXmlSecureResolver(XmlResolver, Evidence)

Inizializza una nuova istanza della classe XmlSecureResolver con gli oggetti XmlResolver e System.Security.Policy.Evidence specificati.

System_CAPS_pubmethodXmlSecureResolver(XmlResolver, PermissionSet)

Inizializza una nuova istanza della classe XmlSecureResolver con gli oggetti XmlResolver e PermissionSet specificati.

System_CAPS_pubmethodXmlSecureResolver(XmlResolver, String)

Inizializza una nuova istanza della classe XmlSecureResolver con l'oggetto XmlResolver e l'URL forniti.

NomeDescrizione
System_CAPS_pubpropertyCredentials

Imposta le credenziali usate per autenticare le richieste Web.(Esegue l'override di XmlResolver.Credentials.)

NomeDescrizione
System_CAPS_pubmethodSystem_CAPS_staticCreateEvidenceForUrl(String)

Crea l'evidenza usando l'URL fornito.

System_CAPS_pubmethodEquals(Object)

Determina se l'oggetto specificato è uguale all'oggetto corrente. (Ereditato da Object.)

System_CAPS_protmethodFinalize()

Consente a un oggetto di provare a liberare risorse ed eseguire altre operazioni di pulizia prima che l'oggetto stesso venga reclamato dalla procedura di Garbage Collection. (Ereditato da Object.)

System_CAPS_pubmethodGetEntity(Uri, String, Type)

Esegue il mapping di un URI a un oggetto che contiene la risorsa effettiva. Questo metodo imposta temporaneamente l'oggetto System.Security.PermissionSet creato nel costruttore chiamando il metodo PermissionSet.PermitOnly prima di chiamare GetEntity sull'oggetto XmlResolver sottostante per aprire la risorsa.(Esegue l'override di XmlResolver.GetEntity(Uri, String, Type).)

System_CAPS_pubmethodGetEntityAsync(Uri, String, Type)

Esegue in modo asincrono il mapping di un URI a un oggetto contenente la risorsa effettiva.(Esegue l'override di XmlResolver.GetEntityAsync(Uri, String, Type).)

System_CAPS_pubmethodGetHashCode()

Funge da funzione hash predefinita.(Ereditato da Object.)

System_CAPS_pubmethodGetType()

Ottiene l'oggetto Type dell'istanza corrente.(Ereditato da Object.)

System_CAPS_protmethodMemberwiseClone()

Crea una copia superficiale dell'oggetto Object corrente.(Ereditato da Object.)

System_CAPS_pubmethodResolveUri(Uri, String)

Risolve l'URI assoluto a partire dagli URI di base e relativo, chiamando ResolveUri sull'oggetto XmlResolver sottostante.(Esegue l'override di XmlResolver.ResolveUri(Uri, String).)

System_CAPS_pubmethodSupportsType(Uri, Type)

Consente al resolver di tipi restituiti diversi da System.IO.Stream.(Ereditato da XmlResolver.)

System_CAPS_pubmethodToString()

Restituisce una stringa che rappresenta l'oggetto corrente. (Ereditato da Object.)

La classe XmlUrlResolver corrisponde al sistema di risoluzione predefinito per tutte le classi dello spazio dei nomi System.Xml. Utilizzato per caricare i documenti XML e per risolvere risorse esterne, ad esempio DTD o schemi, importare o includere direttive.

È possibile eseguire l'override di questa impostazione predefinita, specificando il XmlResolver oggetto da utilizzare. Ad esempio, se si desidera limitare le risorse che sottostante XmlResolver può accedere, è possibile utilizzare un XmlSecureResolver oggetto.

XmlSecureResolver esegue il wrapping di un'implementazione concreta di XmlResolver e limita le risorse che sottostante XmlResolver ha accesso a. Ad esempio, XmlSecureResolver è in grado di impedire il reindirizzamento tra domini, generato da un riferimento incorporato Uniform Resource Identifier (URI).

Quando si crea un XmlSecureResolver dell'oggetto, si fornisce un valido XmlResolver implementazione insieme a un URL, un'istanza di un oggetto di prova o un set di autorizzazioni, che viene utilizzato il XmlSecureResolver per determinare. Su un System.Security.PermissionSet viene generato o viene utilizzato uno esistente e PermissionSet.PermitOnly viene chiamato su di essa per proteggere il sottostante XmlResolver.

System_CAPS_security Sicurezza Nota

Gli oggetti XmlSecureResolver possono contenere informazioni sensibili quali le credenziali utente. È necessario prestare attenzione quando la memorizzazione nella cache XmlSecureResolver gli oggetti e non devono passare il XmlSecureResolver oggetto a un componente non attendibile.

System_CAPS_importantImportante

Vi sono differenze nell'infrastruttura di sicurezza per il codice in esecuzione in common language runtime (CLR) di .NET Framework e per il codice in esecuzione in CLR integrato in Microsoft SQL Server 2005. Questo può causare casi in cui CLR è integrato il codice sviluppato per CLR di .NET Framework funziona in modo diverso quando utilizzato in SQL Server. Una di queste differenze riguarda la XmlSecureResolver classe quando si ha la prova che si basa su un URL (ovvero, quando si utilizza il CreateEvidenceForUrl(String) (metodo) o XmlSecureResolver costruttore). I criteri di risoluzione CLR integrato meccanismo di SQL Server non utilizza il Url o Zone informazioni. Garantisce, invece, le autorizzazioni in base al GUID aggiunto dal server quando gli assembly vengono caricati. Quando si utilizza il XmlSecureResolver in CLR integrato di SQL Server, specificare le eventuali prove richieste direttamente tramite un oggetto specificato PermissionSet.

  1. Creare un oggetto XmlSecureResolver utilizzando il set di autorizzazioni corretto.

  2. Creare un oggetto XmlReaderSettings che utilizzi l'oggetto XmlSecureResolver.

    XmlReaderSettings settings = new XmlReaderSettings();
    settings.XmlResolver = myResolver;
    
  3. Passare il XmlReaderSettings dell'oggetto per il Create metodo quando si crea il XmlReader oggetto.

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

Utilizzare il XmlSecureResolver(XmlResolver, String) costruttore per creare un XmlSecureResolver oggetto che può accedere solo al sito intranet locale.

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

  1. Creare un oggetto WebPermission.

    WebPermission myWebPermission = new WebPermission(PermissionState.None);
    
  2. Specificare gli URL che si desidera consentire l'accesso a.

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

    PermissionSet myPermissions = new PermissionSet(PermissionState.None);
    myPermissions.AddPermission(myWebPermission);
    
  4. Utilizzare il XmlSecureResolver(XmlResolver, PermissionSet) costruttore per creare un XmlSecureResolver oggetto utilizzando il set di autorizzazioni.

    XmlSecureResolver myResolver = new XmlSecureResolver(new XmlUrlResolver(), myPermissions);
    

    Vedere il XmlSecureResolver pagina di riferimento per un altro esempio.

È possibile limitare l'accesso utilizzando il XmlSecureResolver(XmlResolver, Evidence) costruttore e specificando Evidence. Il tipo Evidence viene utilizzato per creare l'oggetto PermissionSet che verrà applicato all'oggetto XmlResolver sottostante. Prima di aprire una risorsa, l'oggetto XmlSecureResolver chiama il metodo PermitOnly sull'oggetto PermissionSet creato.

Di seguito sono riportati alcuni scenari comuni e il tipo di evidenza da fornire per ognuno:

  • Se si lavora in un ambiente completamente attendibile, utilizzare l'assembly per creare l'evidenza:

    Evidence myEvidence = this.GetType().Assembly.Evidence;
    XmlSecureResolver myResolver;
    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 esterna e dispone di un URI verificabile, usare l'URI per creare l'evidenza:

    
    Evidence myEvidence = XmlSecureResolver.CreateEvidenceForUrl(sourceURI);
    XmlSecureResolver myResolver = new XmlSecureResolver(new XmlUrlResolver(), myEvidence);
    
  • Se si lavora in un ambiente parzialmente attendibile e si dispone di codice o dati provenienti da un'origine esterna, ma non si conosce l'origine dell'origine esterna, ovvero:

    Impostare il parametro evidence su null. In tal modo si impedisce l'accesso alle risorse.

    -oppure-

    Se l'applicazione richiede accesso alle risorse, richiedere l'evidenza dal chiamante.

  1. Creare un oggetto XmlSecureResolver utilizzando il set di autorizzazioni corretto.

  2. Passare l'oggetto XmlSecureResolver al metodo Load .

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

Note per gli eredi:

Questa classe ha una richiesta di ereditarietà. L'attendibilità totale deve ereditare la XmlSecureResolver classe.

.NET Framework
Disponibile da 1.1

I membri statici pubblici ( Condiviso in Visual Basic) di questo tipo è thread safe. Non tutti i membri di istanza sono garantiti come thread safe.

Torna all'inizio
Mostra: