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.
In diesem Thema wird erläutert, wie der Zugriff auf die Ressourcentypen, die System.Transactions bereitstellt, eingeschränkt wird.
Es gibt drei Hauptvertrauensebenen für System.Transactions. Die Vertrauensstufen werden basierend auf den Ressourcentypen definiert, die System.Transactions verfügbar gemacht werden, und der Vertrauensstufe, die für den Zugriff auf diese Ressourcen erforderlich sein sollte. Die Ressourcen, auf die System.Transactions zugreift, sind Systemspeicher, freigegebene prozessweite Ressourcen und systemweite Ressourcen. Diese Ebenen sind die folgenden:
AllowPartiallyTrustedCallers (APTCA) für Anwendungen, die Transaktionen in einer einzigen Anwendungsdomäne verwenden.
DistributedTransactionPermission (DTP) für Anwendungen mit verteilten Transaktionen.
Volle Vertrauenswürdigkeit für dauerhafte Ressourcen, Konfigurationsverwaltungsanwendungen und Legacy-Interop-Anwendungen
Hinweis
Sie dürfen keine der Registrierungsschnittstellen mit nachgeahmten Kontexten aufrufen.
Vertrauensstufen
APTCA (teilweise vertrauenswürdig)
Die System.Transactions Assembly kann durch teilweise vertrauenswürdigen Code aufgerufen werden, da sie mit dem AllowPartiallyTrustedCallers Attribut (APTCA) gekennzeichnet wurde. Dieses Attribut entfernt im Wesentlichen den impliziten LinkDemand für den Volltrust-Berechtigungssatz, der andernfalls automatisch auf jede öffentlich zugängliche Methode in jedem Typ angewendet wird. Für einige Typen und Member sind allerdings weiterhin stärkere Berechtigungen erforderlich.
Das APTCA-Attribut ermöglicht es Anwendungen, Transaktionen in teilweiser Vertrauenswürdigkeit innerhalb einer einzelnen Anwendungsdomäne zu verwenden. Dies ermöglicht nicht eskalierte Transaktionen und veränderliche Listen, die für die Fehlerbehandlung verwendet werden können. Ein Beispiel hierfür ist eine transaktionale Hash-Tabelle und eine Anwendung, die sie verwendet. Daten können der Hashtabelle unter einer einzelnen Transaktion hinzugefügt und daraus entfernt werden. Wenn die Transaktion später zurückgesetzt wird, können alle Änderungen, die an der Hashtabelle unter dieser Transaktion vorgenommen wurden, rückgängig gemacht werden.
DistributedTransactionPermission (DTP)
Wenn eine System.Transactions-Transaktion zur Verwaltung durch MSDTC eskaliert wird, fordert System.Transactions die DistributedTransactionPermission (DTP) auf, die verteilte Transaktion zu erstellen. Das bedeutet, dass dem Code, der für die Eskalation der Transaktion verantwortlich ist (beispielsweise durch Serialisierung oder zusätzliche dauerhafte Eintragungen), DTP erteilt werden muss. Der Code, der die System.Transactions Transaktion ursprünglich erstellt hat, muss nicht unbedingt über diese Berechtigung verfügen.
FullTrust-Linkaufrufe
Diese Berechtigungsstufe soll Anwendungen einschränken, die auf dauerhafte Ressourcen schreiben. Nach einem Fehler muss die Anwendung mit dem Transaktions-Manager wiederherstellen können, um das endgültige Ergebnis der Transaktion zu ermitteln, damit permanente Daten aktualisiert werden können. Diese Art von Anwendung wird als dauerhafter Quell-Manager bezeichnet. Ein klassisches Beispiel für diese Art von Anwendung ist SQL.
Um die Wiederherstellung zu ermöglichen, hat diese Art von Anwendung die Möglichkeit, Systemressourcen dauerhaft zu verbrauchen. Das liegt daran, dass sich der wiederherstellungsfähige Transaktions-Manager Transaktionen, für die ein Commit ausgeführt wurde, so lange merken muss, bis er bestätigen kann, dass alle Ressourcen-Manager, die an der Transaktion teilnehmen, Kenntnis über das Ergebnis erhalten haben. Daher erfordert diese Art von Anwendung volles Vertrauen und sollte nicht ausgeführt werden, es sei denn, diese Vertrauensstufe gewährt wurde.
Weitere Informationen zu dauerhaften Anmeldungen und zur Wiederherstellung finden Sie in den Themen Ressourcen als Teilnehmer einer Transaktion auflisten und Durchführung der Wiederherstellung.
Anwendungen, die ältere Interoperabilitätsvorgänge mit COM+ durchführen, müssen ebenfalls voll vertrauenswürdig sein.
Im Folgenden finden Sie eine Liste von Typen und Membern, die nicht durch teilweise vertrauenswürdigen Code aufgerufen werden können, da sie mit dem Attribut "FullTrust "-deklarativer Sicherheit versehen sind:
PermissionSetAttribute(SecurityAction.LinkDemand, Name := "FullTrust")
Nur der sofortige Aufrufer muss über die Berechtigung "FullTrust" verfügen, um die oben genannten Typen oder Methoden zu verwenden.