DelComPlusAppRoleMember - Removing a member from a COM+ application's role
' Remove a member from a COM+ application's role,
' and return True if the operation is successfull
' Note: requires a reference to the COM+ Admin Type Library
'
' Example: DelComPlusAppRoleMember("MyComPlusApp", "MyTestRole", "MYPC\Owner",
' "")
Function DelComPlusAppRoleMember(ByVal applicationName As String, _
ByVal roleName As String, ByVal memberName As String, _
ByVal serverName As String) As Boolean
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()
Dim RoleObj As COMAdmin.COMAdminCatalogObject
For Each RoleObj In roles
If roleName = RoleObj.Name.ToString() Then
Dim members As COMAdmin.COMAdminCatalogCollection = CType _
(roles.GetCollection("UsersInRole", RoleObj.Key), _
COMAdmin.COMAdminCatalogCollection)
members.Populate()
' add each member name to an ArrayList
Dim i As Integer
For i = 0 To members.Count - 1
If memberName = CType(members.Item(i), _
COMAdmin.COMAdminCatalogObject).Name.ToString() Then
If members.RemoveEnabled Then
members.Remove(i)
members.SaveChanges()
Return True
End If
End If
Next i
End If
Next RoleObj
End If
Next AppObj
Return False
End Function