XmlSecureResolver XmlSecureResolver XmlSecureResolver XmlSecureResolver Class

Definition

Schützt eine andere Implementierung von XmlResolver, indem das XmlResolver-Objekt umschlossen wird und der Zugriff auf die Ressourcen beschränkt wird, auf die der zugrunde liegende XmlResolver Zugriff hat.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
Vererbung
XmlSecureResolverXmlSecureResolverXmlSecureResolverXmlSecureResolver

Hinweise

Die XmlUrlResolver-Klasse wird als Standard zum Auflösen für alle Klassen im System.Xml-Namespace verwendet.The XmlUrlResolver class is the default resolver for all classes in the System.Xml namespace. Es wird verwendet, zum Laden von XML-Dokumenten und zum Auflösen von externer Ressourcen wie Entitäten, DTDs oder Schemata und Direktiven importiert oder eingefügt werden soll.It is used to load XML documents and to resolve external resources such as entities, DTDs or schemas, and import or include directives.

Sie können diesen Standardwert überschreiben, indem Sie angeben der XmlResolver Objekt, das verwendet.You can override this default by specifying the XmlResolver object to use. Z. B., wenn Sie die Ressourcen zu beschränken möchten, die die zugrunde liegende XmlResolver zugreifen können, können Sie mithilfe einer XmlSecureResolver Objekt.For example, if you want to restrict the resources that the underlying XmlResolver can access, you can use an XmlSecureResolver object.

XmlSecureResolver Umschließt eine konkrete Implementierung der XmlResolver und beschränkt die Ressourcen, die die zugrunde liegende XmlResolver hat Zugriff auf.XmlSecureResolver wraps around a concrete implementation of XmlResolver and restricts the resources that the underlying XmlResolver has access to. Z. B. XmlSecureResolver hat die Möglichkeit, die domänenübergreifende Umleitung verhindern von einem eingebetteten Uniform Resource Identifier (URI)-Verweis erfolgt.For example, XmlSecureResolver has the ability to prohibit cross-domain redirection, which occurs from an embedded Uniform Resource Identifier (URI) reference.

Beim Erstellen einer XmlSecureResolver Objekt, Sie geben Sie einen gültigen XmlResolver -Implementierung zusammen mit einer URL, eine Instanz ein Beweisobjekt oder einen Berechtigungssatz auf, die von verwendet wird die XmlSecureResolver zum Bestimmen der Sicherheit.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. Entweder ein System.Security.PermissionSet wird generiert, oder der vorhandenen Dateigruppe verwendet wird und PermissionSet.PermitOnly aufgerufen wird, um den zugrunde liegenden schützen 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.

Wichtig

XmlSecureResolver-Objekte können vertrauliche Informationen (z. B. Anmeldeinformationen des Benutzers) enthalten.XmlSecureResolver objects can contain sensitive information such as user credentials. Sollten Sie vorsichtig beim Zwischenspeichern von sein XmlSecureResolver Objekte aus, und übergeben Sie die XmlSecureResolver Objekt, das eine nicht vertrauenswürdige Komponente.You should be careful when caching XmlSecureResolver objects and should not pass the XmlSecureResolver object to an untrusted component.

Wichtig

Es gibt Unterschiede in der Sicherheitsinfrastruktur für Code, die auf .NET Framework common Language Runtime (CLR) ausgeführt wird und für Code, der ausgeführt wird, in der CLR, die in Microsoft SQL Server 2005 integriert ist.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. Dies kann auf zwei Fälle führen, in denen Code entwickelt wurden, für die .NET Framework-CLR anders ausgeführt wird, wenn auf dem SQL Server verwendet die CLR integriert.This can lead to cases where code developed for the .NET Framework CLR operates differently when used on the SQL Server integrated CLR. Einer dieser Unterschiede wirkt sich auf die XmlSecureResolver Klasse, wenn Sie Beweise, die in einer URL basiert (d. h. bei Verwendung von der CreateEvidenceForUrl(String) Methode oder die XmlSecureResolver Konstruktor).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). Die Richtlinie Mechanismus von SQL Server integrierten CLR Lösung verwendet keine der Url oder Zone Informationen.The policy resolution mechanism of the SQL Server integrated CLR does not use the Url or Zone information. Stattdessen erteilt anhand der GUID, die der Server hinzufügt, wenn Assemblys geladen werden.Instead, it grants permissions based on the GUID that the server adds when assemblies are loaded. Bei Verwendung der XmlSecureResolver in der SQL Server integrierten CLR verwenden, geben Sie alle erforderlichen Beweise direkt mithilfe eines angegebenen PermissionSet.When you use the XmlSecureResolver in the SQL Server integrated CLR, provide any required evidence directly by using a specified PermissionSet.

Verwenden Sie einen sicheren KonfliktlöserTo use a secure resolver

  1. Erstellen Sie ein XmlSecureResolver-Objekt mit dem richtigen Berechtigungssatz.Create an XmlSecureResolver with the correct permission set.

  2. Erstellen Sie ein XmlReaderSettings-Objekt, das das XmlSecureResolver-Objekt verwendet.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. Übergeben Sie die XmlReaderSettings -Objekt an die Create Methode, die Sie beim Erstellen der XmlReader Objekt.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)   
    

Zum Einschränken des Zugriffs mithilfe einer URLTo restrict access by using a URL

Verwenden der XmlSecureResolver(XmlResolver, String) Konstruktor zur Erstellung einer XmlSecureResolver -Objekt, das nur die lokale Intranetsite zugreifen darf.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/") 

Zum Einschränken des Zugriffs mithilfe eines BerechtigungssatzesTo restrict access by using a permission set

  1. Erstellen eines WebPermission-ObjektsCreate a WebPermission object.

    WebPermission myWebPermission = new WebPermission(PermissionState.None);
    
    Dim myWebPermission As New WebPermission(PermissionState.None)
    
  2. Geben Sie die URLs, die Sie Zugriff auf zulassen möchten.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. Fügen Sie dem PermissionSet-Objekt die Webberechtigungen hinzu.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. Verwenden der XmlSecureResolver(XmlResolver, PermissionSet) Konstruktor zur Erstellung einer XmlSecureResolver Objekt, indem Sie mithilfe des Berechtigungssatzes.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)
    

    Finden Sie unter den XmlSecureResolver Referenzseite für ein weiteres Beispiel.See the XmlSecureResolver reference page for another example.

Zum Einschränken des Zugriffs mithilfe der BeweiseTo restrict access by using evidence

Sie können den Zugriff mithilfe der XmlSecureResolver(XmlResolver, Evidence) Konstruktor und die Angabe Evidence.You can restrict access by using the XmlSecureResolver(XmlResolver, Evidence) constructor and specifying Evidence. Die Evidence-Klasse wird zum Erstellen der PermissionSet-Klasse verwendet, die auf die zugrunde liegende XmlResolver-Klasse angewendet wird.The Evidence is used to create the PermissionSet that is applied to the underlying XmlResolver. Die XmlSecureResolver-Klasse ruft vor dem Öffnen von Ressourcen die PermitOnly-Methode der erstellten PermissionSet-Klasse auf.The XmlSecureResolver calls PermitOnly on the created PermissionSet before opening any resources.

Hier sind einige allgemeinen Szenarien und den Typ der Beweis, der für jede Eigenschaft angeben:Here are some common scenarios and the type of evidence to provide for each:

  • Wenn Sie in einer vollständig vertrauenswürdigen Umgebung arbeiten, verwenden Sie die Assembly, um den Beweis zu erstellen: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)
    
  • Wenn Sie in einer teilweise vertrauenswürdigen Umgebung arbeiten, Sie verfügen über Code oder Daten aus einer externen Quelle, und Sie kennen den Ursprung der externen Quelle und einen überprüfbaren URI, den URI verwenden, um den Beweis zu erstellen: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)
    
  • Wenn Sie in arbeiten einer teilweise vertrauenswürdigen Umgebung, und Sie verfügen über Code oder Daten aus einer externen Quelle, aber Sie wissen nicht, den Ursprung der externen Quelle, entweder: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:

    Setzen Sie den evidence-Parameter auf null.Set the evidence parameter to null. Dadurch kann nicht mehr auf Ressourcen zugegriffen werden.This allows no access to resources.

    - oder --or-

    Wenn die Anwendung den Zugriff auf einige Ressourcen verlangt, fordern Sie einen Beweis vom Aufrufer an.If your application requires some access to resources, request evidence from the caller.

Um den sicheren Resolver zu verwenden, um ein XSLT-Stylesheet ladenTo use the secure resolver to load an XSLT style sheet

  1. Erstellen Sie ein XmlSecureResolver-Objekt mit dem richtigen Berechtigungssatz.Create an XmlSecureResolver with the correct permission set.

  2. Übergeben Sie die XmlSecureResolver an die Load-Methode.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)
    

Hinweise für Vererber

Diese Klasse verfügt über eine vererbungsanforderung.This class has an inheritance demand. Volle Vertrauenswürdigkeit ist erforderlich, um die von erben die XmlSecureResolver Klasse.Full trust is required to inherit from the XmlSecureResolver class.

Konstruktoren

XmlSecureResolver(XmlResolver, Evidence) XmlSecureResolver(XmlResolver, Evidence) XmlSecureResolver(XmlResolver, Evidence) XmlSecureResolver(XmlResolver, Evidence)

Initialisiert eine neue Instanz der XmlSecureResolver-Klasse mit dem angegebenen XmlResolver und Evidence.Initializes a new instance of the XmlSecureResolver class with the XmlResolver and Evidence specified.

XmlSecureResolver(XmlResolver, PermissionSet) XmlSecureResolver(XmlResolver, PermissionSet) XmlSecureResolver(XmlResolver, PermissionSet) XmlSecureResolver(XmlResolver, PermissionSet)

Initialisiert eine neue Instanz der XmlSecureResolver-Klasse mit dem angegebenen XmlResolver und PermissionSet.Initializes a new instance of the XmlSecureResolver class with the XmlResolver and PermissionSet specified.

XmlSecureResolver(XmlResolver, String) XmlSecureResolver(XmlResolver, String) XmlSecureResolver(XmlResolver, String) XmlSecureResolver(XmlResolver, String)

Initialisiert eine neue Instanz der XmlSecureResolver-Klasse mit dem angegebenen XmlResolver und URL.Initializes a new instance of the XmlSecureResolver class with the XmlResolver and URL provided.

Eigenschaften

Credentials Credentials Credentials Credentials

Legt Anmeldeinformationen zum Authentifizieren von Webanforderungen fest.Sets credentials used to authenticate web requests.

Methoden

CreateEvidenceForUrl(String) CreateEvidenceForUrl(String) CreateEvidenceForUrl(String) CreateEvidenceForUrl(String)

Erstellt einen Beweise mit der angegebenen URL.Creates evidence using the supplied URL.

Equals(Object) Equals(Object) Equals(Object) Equals(Object)

Bestimmt, ob das angegebene Objekt mit dem aktuellen Objekt identisch ist.Determines whether the specified object is equal to the current object.

(Inherited from Object)
GetEntity(Uri, String, Type) GetEntity(Uri, String, Type) GetEntity(Uri, String, Type) GetEntity(Uri, String, Type)

Ordnet einem Objekt, das die eigentliche Ressource enthält, einen URI zu.Maps a URI to an object that contains the actual resource. Diese Methode legt temporär das im Konstruktor durch Aufruf von PermissionSet erstellte PermitOnly() fest, bevor GetEntity für den zugrunde liegenden XmlResolver zum Öffnen der Ressource aufgerufen wird.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) GetEntityAsync(Uri, String, Type) GetEntityAsync(Uri, String, Type) GetEntityAsync(Uri, String, Type)

Ordnet einem Objekt, das die eigentliche Ressource enthält, asynchron einen URI zu.Asynchronously maps a URI to an object that contains the actual resource.

GetHashCode() GetHashCode() GetHashCode() GetHashCode()

Fungiert als Standardhashfunktion.Serves as the default hash function.

(Inherited from Object)
GetType() GetType() GetType() GetType()

Ruft den Type der aktuellen Instanz ab.Gets the Type of the current instance.

(Inherited from Object)
MemberwiseClone() MemberwiseClone() MemberwiseClone() MemberwiseClone()

Erstellt eine flache Kopie des aktuellen Object.Creates a shallow copy of the current Object.

(Inherited from Object)
ResolveUri(Uri, String) ResolveUri(Uri, String) ResolveUri(Uri, String) ResolveUri(Uri, String)

Löst durch Aufruf von ResolveUri für den zugrunde liegenden XmlResolver den absoluten URI der Basis sowie relative URIs auf.Resolves the absolute URI from the base and relative URIs by calling ResolveUri on the underlying XmlResolver.

SupportsType(Uri, Type) SupportsType(Uri, Type) SupportsType(Uri, Type) SupportsType(Uri, Type)

Erlaubt dem Resolver, andere Typen als Stream zurückzugeben.Enables the resolver to return types other than Stream.

(Inherited from XmlResolver)
ToString() ToString() ToString() ToString()

Gibt eine Zeichenfolge zurück, die das aktuelle Objekt darstellt.Returns a string that represents the current object.

(Inherited from Object)

Gilt für: