Dela via


Programmatisk komponentsäkerhet

När du använder rollbaserad säkerhet i COM+-programmet som innehåller din komponent har du åtkomst till programmatiska säkerhetsfunktioner inifrån komponenten. Du kan kontrollera rollmedlemskap för att avgöra om vissa kodavsnitt körs, du kan komma åt säkerhetsinformation med hjälp av kontextobjektet för säkerhetsanrop och du kan avgöra om säkerhet är aktiverat för det aktuella anropet. Du kan utföra alla dessa uppgifter med hjälp av en referens till ett SecurityCallContext- -objekt (för Microsoft Visual Basic-program) eller en pekare till ISecurityCallContext--gränssnittet (för C- och Microsoft Visual C++-program).

Mer information om programmatisk rollbaserad säkerhet finns i följande avsnitt i det här avsnittet:

Personifiering och COM-säkerhetsfunktioner

Om din komponent används i ett COM+-program som inte använder rollbaserad säkerhet är programmatisk rollkontroll och kontextinformation för säkerhetsanrop inte tillgängliga. Du kan dock använda de programmatiska säkerhetsfunktionerna som tillhandahålls av COM. Mer information finns i Security i COM.

Även om du kan använda de flesta säkerhetsfunktioner som tillhandahålls av COM kan du inte anropa CoInitializeSecurity från en komponent som ingår i ett COM+-program eftersom CoInitializeSecurity anropas av surrogaten som COM+-programmet körs i. Du kan dock anropa andra säkerhetsfunktioner, till exempel CoQueryClientBlanket, som hämtar information om klienten.

I synnerhet när du behöver använda klientens identitet för att komma åt en resurs – till exempel att komma åt en fil som skyddas av en säkerhetsbeskrivning eller sprida klientens identitet till en databas – kan du utföra personifiering programmatiskt. Mer information om när och hur du gör detta finns i Klientpersonifiering och delegering.

Testa säkerhetsfunktioner

Om du använder COM+ programmatisk säkerhet i komponenten måste du integrera komponenten i ett COM+-program när du är redo att testa komponentens säkerhetsfunktioner. Om en komponent som använder COM+ programmatisk säkerhet körs utan att integreras i ett COM+-program genereras undantag. Om du vill se till att en sådan komponent också kan integreras i ett program som inte ingår i COM+-miljön måste du därför se till att dessa undantag hanteras på rätt sätt.

Dokumentera säkerhetskrav

Om du skriver en fristående komponent för COM+-program som använder rollbaserad säkerhet måste du dokumentera komponenten så att säkerheten kan konfigureras på rätt sätt när komponenten är integrerad i ett COM+-program. Du bör till exempel identifiera de roller som måste läggas till och förklara vilka metoder och gränssnitt som varje roll ska tilldelas till. Om en metod som IsCallerInRole("Teller") anropas bör du dessutom beskriva de funktioner som endast Tellers har åtkomst till. Du bör också ange om en roll krävs för att skydda åtkomsten till hela komponenten.

klientautentisering

klientpersonifiering och delegering

Programsäkerhet för bibliotek

programsäkerhet på flera nivåer

Role-Based Säkerhetsadministration

Använda principen för begränsning av programvara i COM+