Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
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.
Dim myResolver As New XmlSecureResolver(New XmlUrlResolver(), "http://myLocalSite/")XmlSecureResolver myResolver = new XmlSecureResolver(new XmlUrlResolver(), "http://myLocalSite/");
So schränken den Zugriff mithilfe eines Berechtigungssatzes ein
Erstellen Sie ein WebPermission-Objekt.
Dim myWebPermission As New WebPermission(PermissionState.None)WebPermission myWebPermission = new WebPermission(PermissionState.None);Beschränken Sie den Zugriff nur auf die zwei folgenden URLs.
myWebPermission.AddPermission(NetworkAccess.Connect, "https://www.contoso.com/") myWebPermission.AddPermission(NetworkAccess.Connect, "http://litwareinc.com/data/")myWebPermission.AddPermission(NetworkAccess.Connect,"https://www.contoso.com/"); myWebPermission.AddPermission(NetworkAccess.Connect,"http://litwareinc.com/data/");Fügen Sie dem PermissionSet-Objekt die Webberechtigungen hinzu.
Dim myPermissions As New PermissionSet(PermissionState.None) myPermissions.AddPermission(myWebPermission)PermissionSet myPermissions = new PermissionSet(PermissionState.None); myPermissions.AddPermission(myWebPermission);Erstellen Sie mithilfe des Berechtigungssatzes ein XmlSecureResolver-Objekt.
Dim myResolver As New XmlSecureResolver(New XmlUrlResolver(), myPermissions)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.
Dim myEvidence As Evidence = Me.GetType().Assembly.Evidence Dim myResolver As XmlSecureResolver myResolver = New XmlSecureResolver(New XmlUrlResolver(), myEvidence)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.
Dim myEvidence As Evidence = XmlSecureResolver.CreateEvidenceForUrl(sourceURI) Dim myResolver As New XmlSecureResolver(New XmlUrlResolver(), myEvidence)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.
Verwenden von "XmlSecureResolver" zum Auflösen von XML-Ressourcen
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
Erstellen Sie ein XmlSecureResolver-Objekt mit dem richtigen Berechtigungssatz.
Erstellen Sie ein XmlReaderSettings-Objekt, das das XmlSecureResolver-Objekt verwendet.
Dim settings As New XmlReaderSettings() settings.XmlResolver = myResolverXmlReaderSettings settings = new XmlReaderSettings(); settings.XmlResolver = myResolver;Verwenden Sie das XmlReaderSettings-Objekt, um das XmlReader-Objekt zu erstellen.
Dim reader As XmlReader = XmlReader.Create("books.xml", settings)XmlReader reader = XmlReader.Create("books.xml", settings);
So verwenden Sie "XmlSecureResolver" zum Laden eines XSLT-Stylesheets
Erstellen Sie ein XmlSecureResolver-Objekt mit dem richtigen Berechtigungssatz.
Übergeben Sie die XmlSecureResolver an die Load-Methode.
Dim xslt As New XslCompiledTransform() xslt.Load("https://serverName/data/xsl/sort.xsl", Nothing, myResolver)XslCompiledTransform xslt = new XslCompiledTransform(); xslt.Load("https://serverName/data/xsl/sort.xsl", null, myResolver);