Freigeben über


Programmgesteuerte Komponentensicherheit

Wenn Sie die rollenbasierte Sicherheit in der COM+-Anwendung verwenden, die Ihre Komponente enthält, haben Sie Innerhalb Ihrer Komponente Zugriff auf programmgesteuerte Sicherheitsfunktionen. Sie können die Rollenmitgliedschaft überprüfen, um zu bestimmen, ob bestimmte Codeabschnitte ausgeführt werden, Sie können mithilfe des Sicherheitsaufrufkontextobjekts auf Sicherheitsinformationen zugreifen und bestimmen, ob die Sicherheit für den aktuellen Aufruf aktiviert ist. Sie können alle diese Aufgaben ausführen, indem Sie einen Verweis auf ein SecurityCallContext-Objekt (für Microsoft Visual Basic-Anwendungen) oder einen Zeiger auf die ISecurityCallContext-Schnittstelle (für C- und Microsoft Visual C++-Anwendungen) verwenden.

Weitere Informationen zur programmgesteuerten rollenbasierten Sicherheit finden Sie in den folgenden Themen in diesem Abschnitt:

Identitätswechsel und COM-Sicherheitsfeatures

Wenn Ihre Komponente in einer COM+-Anwendung verwendet wird, die keine rollenbasierte Sicherheit verwendet, sind programmgesteuerte Rollenüberprüfungs- und Sicherheitsaufrufkontextinformationen nicht verfügbar. Sie können jedoch die von COM bereitgestellte programmgesteuerte Sicherheitsfunktionalität verwenden. Weitere Informationen finden Sie unter Sicherheit in COM.

Obwohl Sie den Großteil der von COM bereitgestellten Sicherheitsfunktionen verwenden können, können Sie CoInitializeSecurity nicht von einer Komponente aufrufen, die Teil einer COM+-Anwendung ist, da CoInitializeSecurity von dem Ersatzzeichen aufgerufen wird, in dem die COM+-Anwendung ausgeführt wird. Sie können jedoch andere Sicherheitsfunktionen aufrufen, z. B. CoQueryClientBlanket, die Informationen über den Client abruft.

Insbesondere wenn Sie die Identität des Clients für den Zugriff auf eine Ressource verwenden müssen , z. B. für den Zugriff auf eine Datei, die durch einen Sicherheitsdeskriptor geschützt ist, oder die Identität des Clients an eine Datenbank weitergeben, können Sie den Identitätswechsel programmgesteuert durchführen. Weitere Informationen dazu, wann und wie Dies geschieht, finden Sie unter Identitätswechsel und Delegierung des Clients.

Testen der Sicherheitsfunktionalität

Wenn Sie die programmgesteuerte COM+-Sicherheit in Ihrer Komponente verwenden, müssen Sie die Komponente in eine COM+-Anwendung integrieren, wenn Sie bereit sind, die Sicherheitsfunktionalität der Komponente zu testen. Wenn eine Komponente mit programmgesteuerter COM+-Sicherheit ausgeführt wird, ohne in eine COM+-Anwendung integriert zu werden, werden Ausnahmen ausgelöst. Wenn Sie daher sicherstellen möchten, dass eine solche Komponente auch erfolgreich in eine Anwendung integriert werden kann, die nicht Teil der COM+-Umgebung ist, müssen Sie sicherstellen, dass diese Ausnahmen ordnungsgemäß behandelt werden.

Dokumentieren von Sicherheitsanforderungen

Wenn Sie eine eigenständige Komponente für COM+-Anwendungen schreiben, die rollenbasierte Sicherheit verwenden, müssen Sie die Komponente dokumentieren, damit die Sicherheit entsprechend konfiguriert werden kann, wenn die Komponente in eine COM+-Anwendung integriert ist. Sie sollten beispielsweise die Rollen identifizieren, die hinzugefügt werden müssen, und erläutern, welchen Methoden und Schnittstellen jede Rolle zugewiesen werden soll. Wenn eine Methode wie IsCallerInRole("Teller") aufgerufen wird, sollten Sie außerdem die Funktionalität beschreiben, auf die nur Teller Zugriff haben. Sie sollten auch angeben, ob eine Rolle erforderlich ist, um den Zugriff auf die gesamte Komponente zu schützen.

Clientauthentifizierung

Clientidentitätswechsel und -delegierung

Bibliotheksanwendungssicherheit

Anwendungssicherheit mit mehreren Ebenen

Rollenbasierte Sicherheitsverwaltung

Verwenden der Softwareeinschränkungsrichtlinie in COM+