Beveiliging van programmatische onderdelen
Wanneer u op rollen gebaseerde beveiliging gebruikt in de COM+-toepassing die uw onderdeel bevat, hebt u toegang tot programmatische beveiligingsfunctionaliteit vanuit uw onderdeel. U kunt het rollidmaatschap controleren om te bepalen of bepaalde codesecties worden uitgevoerd, u hebt toegang tot beveiligingsgegevens met behulp van het contextobject voor beveiligingsoproepen en u kunt bepalen of beveiliging is ingeschakeld voor de huidige aanroep. U kunt al deze taken uitvoeren met behulp van een verwijzing naar een SecurityCallContext-object (voor Microsoft Visual Basic-toepassingen) of een aanwijzer naar de ISecurityCallContext-interface (voor C- en Microsoft Visual C++-toepassingen).
Zie de volgende onderwerpen in deze sectie voor meer informatie over op programmatische rollen gebaseerde beveiliging:
- rollidmaatschap controleren
- bepalen of Role-Based beveiliging is ingeschakeld
- toegang tot contextinformatie over beveiligingsoproepen
Imitatie- en COM-beveiligingsfuncties
Als uw onderdeel wordt gebruikt in een COM+-toepassing die geen op rollen gebaseerde beveiliging gebruikt, zijn programmatische rolcontrole en contextinformatie over beveiligingsoproepen niet beschikbaar. U kunt echter de programmatische beveiligingsfunctionaliteit van COM gebruiken. Zie Beveiliging in COM-voor meer informatie.
Hoewel u de meeste beveiligingsfunctionaliteit van COM kunt gebruiken, kunt u geen CoInitializeSecurity aanroepen vanuit een onderdeel dat deel uitmaakt van een COM+-toepassing, omdat CoInitializeSecurity wordt aangeroepen door de surrogaat waarin de COM+-toepassing wordt uitgevoerd. U kunt echter andere beveiligingsfuncties aanroepen, zoals CoQueryClientBlanket, waarmee informatie over de client wordt opgehaald.
Met name wanneer u de identiteit van de client moet gebruiken voor toegang tot een bepaalde resource, bijvoorbeeld het openen van een bestand dat is beveiligd door een beveiligingsdescriptor of het doorgeven van de identiteit van de client aan een database, kunt u programmatisch imitatie uitvoeren. Zie Client-imitatie en delegatie-voor meer informatie over wanneer en hoe u dit doet.
Beveiligingsfunctionaliteit testen
Als u COM+ programmatische beveiliging in uw onderdeel gebruikt, moet u het onderdeel integreren in een COM+-toepassing wanneer u klaar bent om de beveiligingsfunctionaliteit van het onderdeel te testen. Als een onderdeel met COM+-programmatische beveiliging wordt uitgevoerd zonder te worden geïntegreerd in een COM+-toepassing, worden uitzonderingen gegenereerd. Als u er daarom voor wilt zorgen dat een dergelijk onderdeel ook kan worden geïntegreerd in een toepassing die geen deel uitmaakt van de COM+-omgeving, moet u ervoor zorgen dat deze uitzonderingen op de juiste wijze worden afgehandeld.
Beveiligingsvereisten documenteren
Als u een zelfstandig onderdeel schrijft voor COM+-toepassingen die gebruikmaken van beveiliging op basis van rollen, moet u het onderdeel documenteren, zodat beveiliging op de juiste wijze kan worden geconfigureerd wanneer het onderdeel is geïntegreerd in een COM+-toepassing. U moet bijvoorbeeld de rollen identificeren die moeten worden toegevoegd en uitleggen aan welke methoden en interfaces elke rol moet worden toegewezen. Als een methode zoals IsCallerInRole("Teller") wordt aangeroepen, moet u bovendien de functionaliteit beschrijven waartoe alleen Tellers toegang hebben. U moet ook opgeven of een rol vereist is om de toegang tot het hele onderdeel te beveiligen.
Verwante onderwerpen