Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
Wanneer u programmatisch de COM+-beheercatalogus gebruikt, voert u doorgaans de volgende algemene stappen uit (niet in een strikte volgorde hier):
- Open een sessie met de COM+-catalogus op de lokale computer. U kunt eventueel verbinding maken met de COM+-catalogus op een externe computer.
- Voer acties uit, zoals het starten of stoppen van services, acties die niet betrekking hebben op een bepaalde COM+-toepassing.
- Voer acties uit zoals het installeren of exporteren van COM+-toepassingen of het installeren van onderdelen in toepassingen: acties die betrekking hebben op het lezen van of schrijven naar bestanden.
- Voeg nieuwe items toe aan verzamelingen, zoals het maken van een nieuwe COM+-toepassing door een nieuw item toe te voegen aan de verzameling Toepassingen.
- Eigenschappen voor een item in een verzameling instellen of ophalen.
- Sla de openstaande wijzigingen in de catalogus op of verwerp ze.
- Omgaan met eventuele fouten.
Als u wilt zien hoe deze stappen eruitzien wanneer u de COMAdmin-objecten gebruikt, wordt hieronder een Microsoft Visual Basic-voorbeeld gegeven. Hieronder ziet u een aantal van de gebruikelijke stappen die hierboven worden beschreven, zoals het zoeken naar verzamelingen, het inventariseren van een verzameling om een item op te halen en eigenschappen voor dat item in te stellen.
In het onderstaande voorbeeld voert u de volgende acties uit:
- Maak een nieuwe COM+-toepassing, 'MyHomeZoo'.
- Installeer enkele onderdelen, Cat en Dog, in de toepassing. Beide onderdelen bevinden zich in één DLL die al moet bestaan: MyZoo.dll.
- Configureer beveiliging op basis van rollen voor de toepassing door twee rollen te definiëren: ZooKeeper en AllergischeToCats.
- Wijs de ZooKeeper-roltoegang toe aan de hele toepassing.
- Ken de rol AllergicToCats alleen toegang toe tot het onderdeel Dog.
- Schakel beveiligingseigenschappen in zodat rolcontrole wordt afgedwongen voor de toepassing.
- Exporteer de Toepassing MyHomeZoo naar een bestand, zodat deze op andere computers kan worden geïnstalleerd.
Als u dit voorbeeld van Visual Basic wilt gebruiken, voegt u een verwijzing toe naar de COM+ Admin Type Library.
Function SetupMyZoo() As Boolean ' Return False if any errors occur.
' Initialize error handling for this function.
SetupMyZoo = False
On Error GoTo My_Error_Handler
' Open a session with the catalog.
' Instantiate a COMAdminCatalog object.
Dim objCatalog As COMAdminCatalog
Set objCatalog = CreateObject("COMAdmin.COMAdminCatalog")
' Create a new COM+ application.
' First get the "Applications" collection from the catalog.
Dim objApplicationsColl As COMAdminCatalogCollection
Set objApplicationsColl = objCatalog.GetCollection("Applications")
' Add a new item to this collection.
Dim objZooApp As COMAdminCatalogObject
Set objZooApp = objApplicationsColl.Add
' The "Applications" collection determines the available properties.
' Set the "Name" property of the new application item.
objZooApp.Value("Name") = "MyHomeZoo"
' Set the "Description" property of the new application item.
objZooApp.Value("Description") = "My pets at home"
' Save changes made to the "Applications" collection.
objApplicationsColl.SaveChanges
' Install components into the application.
' Use the InstallComponent method on COMAdminCatalog.
' In this case, the last two parameters are passed as empty strings.
objCatalog.InstallComponent "MyHomeZoo","MyZoo.DLL","",""
' Define the roles ZooKeeper and AllergicToCats
' by adding them to the "Roles" collection related to MyHomeZoo.
' First get the "Roles" collection related to MyHomeZoo.
' Use the GetCollection method on COMAdminCatalogCollection,
' passing in the name of the desired collection, "Roles",
' and the Key property value of objZooApp.
' The Key property uniquely identifies the object, serving
' here to distinguish the "Roles" collection related
' to MyHomeZoo from that of any other application.
Dim objRolesColl As COMAdminCatalogCollection
Set objRolesColl = objApplicationsColl.GetCollection("Roles", objZooApp.Key)
' Add new items to this "Roles" collection.
Dim objZooKeeperRole As COMAdminCatalogObject
Dim objAllergicToCatsRole As COMAdminCatalogObject
Set objZooKeeperRole = objRolesColl.Add
Set objAllergicToCatsRole = objRolesColl.Add
' Set the "Name" for the new items.
objZooKeeperRole.Value("Name") = "ZooKeeper"
objAllergicToCatsRole.Value("Name") = "AllergicToCats"
' Save changes made to any items in this "Roles" collection.
objRolesColl.SaveChanges
' Assign the AllergicToCats role to the Dog component to
' restrict its scope of access. (The ZooKeeper role, if assigned
' only at the application level, can access the whole application.)
' First get the "Components" collection related to MyHomeZoo.
' Use the GetCollection method on COMAdminCatalogCollection,
' passing in the name of the desired collection, "Components", and
' the Key property value of objZooApp.
Dim objZooComponentsColl As COMAdminCatalogCollection
Set objZooComponentsColl = objApplicationsColl.GetCollection("Components", objZooApp.Key)
' Find the Dog component item in this "Components" collection.
' First Populate the collection to read in data for all its items.
objZooComponentsColl.Populate
' Enumerate through the "Components" collection
' until the Dog component item is located.
Dim objDog As COMAdminCatalogObject
For Each objDog in objZooComponentsColl
If objDog.Name = "Dog" Then
Exit For
End If
Next
' Set the role checking property at the component level for Dog.
objDog.Value("ComponentAccessChecksEnabled") = True
' Save these changes.
objZooComponentsColl.SaveChanges
' Get the "RolesForComponent" collection related to the
' Dog component, using the Key property of objDog.
Dim objRolesForDogColl As COMAdminCatalogCollection
Set objRolesForDogColl = objZooComponentsColl.GetCollection("RolesForComponent", objDog.Key)
' Add a new item to this "RolesForComponent" collection.
Dim objCatSneezerRole As COMAdminCatalogObject
Set objCatSneezerRole = objRolesForDogColl.Add
' Set the "Name" of the new item to be "AllergicToCats".
objCatSneezerRole.Value("Name") = "AllergicToCats"
' Save changes made to this "RolesForComponent" collection.
objRolesForDogColl.SaveChanges
' Now set properties to enforce role-based security.
' First set role-based security at the application level.
objZooApp.Value("ApplicationAccessChecksEnabled") = True
objZooApp.Value("AccessChecksLevel") = COMAdminAccessChecksApplicationComponentLevel
' Save these changes.
objApplicationsColl.SaveChanges
' Finally, export the new configured MyHomeZoo application to an
' MSI file, used to install the application on other machines.
' Use the ExportApplication method on COMAdminCatalogObject.
objCatalog.ExportApplication "MyHomeZoo", "c:\Program Files\COM applications\MyHomeZoo.MSI", 4
' Exit the function gracefully.
SetupMyZoo = True
My_Error_Handler:
If Not SetupMyZoo Then
MsgBox "Error # " & Err.Number & " (Hex: " & Hex(Err.Number) & ")" & vbNewLine & Err.Description
End If
objCatSneezerRole = Nothing
objRolesForDogColl = Nothing
objDog = Nothing
objZooComponentsColl = Nothing
objAllergicToCatsRole = Nothing
objZooKeeperRole = Nothing
objRolesColl = Nothing
objZooApp = Nothing
objApplicationsColl = Nothing
objCatalog = Nothing
Exit Function
Verwante onderwerpen