Programmgesteuerte Komponentensicherheit
Wenn Sie rollenbasierte Sicherheit in der COM+-Anwendung verwenden, die Ihre Komponente enthält, haben Sie Zugriff auf programmgesteuerte Sicherheitsfunktionen innerhalb Ihrer Komponente. Sie können die Rollenmitgliedschaft überprüfen, um zu bestimmen, ob bestimmte Codeabschnitte ausgeführt werden, Sie können mithilfe des Kontextobjekts für Sicherheitsaufrufe 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:
- Überprüfen der Rollenmitgliedschaft
- Bestimmen, ob Role-Based Sicherheit aktiviert ist
- Zugreifen auf Sicherheitsanrufkontextinformationen
Identitätswechsel und COM-Sicherheitsfeatures
Wenn Ihre Komponente in einer COM+-Anwendung verwendet wird, die keine rollenbasierte Sicherheit verwendet, sind programmgesteuerte Rollenüberprüfungen und Kontextinformationen für Sicherheitsaufrufe 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 die meisten der von COM bereitgestellten Sicherheitsfunktionen verwenden können, können Sie CoInitializeSecurity aus einer Komponente, die Teil einer COM+-Anwendung ist, nicht aufrufen, da CoInitializeSecurity von der Surrogate aufgerufen wird, in der 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 verwenden müssen, um auf eine Ressource zuzugreifen, z. B. den Zugriff auf eine Datei, die durch einen Sicherheitsdeskriptor geschützt ist, oder die Identität des Clients über eine Datenbank verteilt, können Sie den Identitätswechsel programmgesteuert ausführen. Weitere Informationen dazu, wann und wie dies zu tun ist, finden Sie unter Clientidentitätswechsel und -delegierung.
Testen der Sicherheitsfunktionalität
Wenn Sie com+ programmgesteuerte 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, die COM+ programmgesteuerte Sicherheit verwendet, 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. Beispielsweise sollten Sie die Rollen identifizieren, die hinzugefügt werden müssen, und erläutern, welche Methoden und Schnittstellen jeder Rolle zugewiesen werden sollen. Wenn eine Methode wie IsCallerInRole("Teller") aufgerufen wird, sollten Sie außerdem die Funktionalität beschreiben, auf die nur Tellers Zugriff haben. Sie sollten auch angeben, ob eine Rolle erforderlich ist, um den Zugriff auf die gesamte Komponente zu schützen.
Verwandte Themen