GetComPlusAppRoles - Retrieving a COM+ Application's roles
' Get an array with the name of an application's roles
' Note: requires a reference to the COM+ Admin Type Library
'
' Example:
' Dim roles() As String = GetComPlusAppRoles("System Application", "")
' Dim role As String
' For Each role In roles
' Console.WriteLine(role)
' Next
Function GetComPlusAppRoles(ByVal applicationName As String, _
ByVal serverName As String) As String()
Dim catalog As New COMAdmin.COMAdminCatalog
catalog.Connect(serverName)
' get the Applications collection
Dim apps As COMAdmin.COMAdminCatalogCollection = CType _
(catalog.GetCollection("Applications"), _
COMAdmin.COMAdminCatalogCollection)
apps.Populate()
Dim AppObj As COMAdmin.COMAdminCatalogObject
For Each AppObj In apps
If applicationName = AppObj.Name.ToString() Then
Dim roles As COMAdmin.COMAdminCatalogCollection = CType _
(apps.GetCollection("Roles", AppObj.Key), _
COMAdmin.COMAdminCatalogCollection)
roles.Populate()
' add each application name to an ArrayList
Dim roleNames(roles.Count) As String
Dim i As Integer
For i = 0 To roles.Count - 1
roleNames(i) = CType(roles.Item(i), _
COMAdmin.COMAdminCatalogObject).Name.ToString()
Next i
Return roleNames
End If ' convert from the ArrayList to an array of strings,
' and return it
Next AppObj
Return New String(1) {}
End Function