War diese Seite hilfreich?
Ihr Feedback ist uns wichtig. Teilen Sie uns Ihre Meinung mit.
Weiteres Feedback?
1500 verbleibende Zeichen
Exportieren (0) Drucken
Alle erweitern
Dieser Artikel wurde manuell übersetzt. Bewegen Sie den Mauszeiger über die Sätze im Artikel, um den Originaltext anzuzeigen.
Übersetzung
Original

Vorgehensweise: Verwenden der "XmlSecureResolver"-Klasse

Mit der XmlSecureResolver-Klasse kann ein anderes XmlResolver-Objekt gesichert werden. Dies erfolgt durch Wrapping des XmlResolver-Objekts und Beschränken der Ressourcen, auf die der zugrunde liegende XmlResolver zugreifen kann. Beispielsweise kann mit der XmlSecureResolver-Klasse der Zugriff auf bestimmte Internetsites oder Internetzonen verhindert werden.

So schränken Sie den Zugriff mithilfe einer URL ein

  • Erstellen Sie ein XmlSecureResolver-Objekt, das nur auf die lokale Intranetsite zugreifen kann.

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

So schränken den Zugriff mithilfe eines Berechtigungssatzes ein

  1. Erstellen Sie ein WebPermission-Objekt.

    
    WebPermission myWebPermission = new WebPermission(PermissionState.None);
    
    
    
  2. Beschränken Sie den Zugriff nur auf die zwei folgenden URLs.

    
    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.

    
    PermissionSet myPermissions = new PermissionSet(PermissionState.None);
    myPermissions.AddPermission(myWebPermission);
    
    
    
  4. Erstellen Sie mithilfe des Berechtigungssatzes ein XmlSecureResolver-Objekt.

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

So beschränken Sie den Zugriff mithilfe von Beweisen ein

  • Sie können den Zugriff mithilfe von Evidence einschränken. Die Evidence-Klasse wird zum Erstellen der PermissionSet-Klasse verwendet, die auf die zugrunde liegende XmlResolver-Klasse angewendet wird. Die XmlSecureResolver-Klasse ruft vor dem Öffnen von Ressourcen die PermitOnly-Methode der erstellten PermissionSet-Klasse auf.

    Die folgende Liste enthält einige mögliche Szenarios sowie den Beweistyp, der für jedes Szenario bereitgestellt werden muss.

    • Sie arbeiten in einer vollständig vertrauenswürdigen Umgebung:

      Verwenden Sie die Assembly, um den Beweis zu erstellen.

      
      Evidence myEvidence = this.GetType().Assembly.Evidence;
      XmlSecureResolver myResolver;
      myResolver = new XmlSecureResolver(new XmlUrlResolver(), myEvidence);
      
      
      
    • Sie arbeiten in einer teilweise vertrauenswürdigen Umgebung und verfügen über Code oder Daten aus einer externen Quelle. Sie kennen den Ursprung der externen Quelle und verfügen über einen überprüfbaren URI:

      Verwenden Sie den URI, um den Beweis zu erstellen.

      
      
      Evidence myEvidence = XmlSecureResolver.CreateEvidenceForUrl(sourceURI);
      XmlSecureResolver myResolver = new XmlSecureResolver(new XmlUrlResolver(), myEvidence);
      
      
      
    • Sie arbeiten in einer teilweise vertrauenswürdigen Umgebung, verfügen über Code oder Daten aus einer externen Quelle und kennen den Ursprung der externen Quelle nicht:

      Setzen Sie den evidence-Parameter auf null. Dadurch kann nicht mehr auf Ressourcen zugegriffen werden.

      - oder -

      Wenn die Anwendung den Zugriff auf einige Ressourcen verlangt, fordern Sie einen Beweis vom Aufrufer an.

Die XmlUrlResolver-Klasse wird als Standard zum Auflösen für alle Klassen im System.Xml-Namespace verwendet. Mit dieser Klasse werden XML-Dokumente geladen, externe Ressourcen aufgelöst (z. B. Entitäten, DTDs oder Schemata) und Direktiven importiert oder eingefügt.

Sie können diese Klasse überschreiben, indem Sie das zu verwendende XmlResolver-Objekt angeben. Durch Angeben der XmlSecureResolver-Klasse können Sie die Ressourcen einschränken, auf die die zugrunde liegende XmlResolver-Klasse zugreifen kann.

So erstellen Sie ein "XmlReader"-Objekt, das einen "XmlSecureResolver" verwendet

  1. Erstellen Sie ein XmlSecureResolver-Objekt mit dem richtigen Berechtigungssatz.

  2. Erstellen Sie ein XmlReaderSettings-Objekt, das das XmlSecureResolver-Objekt verwendet.

    
    XmlReaderSettings settings = new XmlReaderSettings();
    settings.XmlResolver = myResolver;
    
    
    
  3. Verwenden Sie das XmlReaderSettings-Objekt, um das XmlReader-Objekt zu erstellen.

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

So verwenden Sie "XmlSecureResolver" zum Laden eines XSLT-Stylesheets

  1. Erstellen Sie ein XmlSecureResolver-Objekt mit dem richtigen Berechtigungssatz.

  2. Übergeben Sie die XmlSecureResolver an die Load-Methode.

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

Community-Beiträge

HINZUFÜGEN
Anzeigen:
© 2015 Microsoft