Получение прав на почтовый ящик из AD с помощью System.DirectoryServices

#c# #.net #vb.net #active-directory

#c# #.net #vb.net #active-directory

Вопрос:

Мне нужно восстановить дескрипторы безопасности для атрибута active Directory «msExchMailboxSecurityDescriptor» в объектах учетной записи пользователя.

Пока все, что я могу найти, это то, что мне нужно использовать этот класс для этого, но я не могу найти ни одного примера кода о том, как начать извлекать то, что я хочу, используя его.

Я ограничен в использовании .Net версии 0.

У кого-нибудь есть опыт или идеи?

Ответ №1:

Используя COM-компонент ActiveDS, это кажется намного проще:

 Imports ActiveDS

Private Function GetSecurityDescriptor(ByVal DNPath As String) As List(Of AccessControlEntry)

        Dim AceList As New List(Of AccessControlEntry)

        Try

            Dim ent As New DirectoryEntry(String.Format("LDAP://{0}", DNPath))
            Dim sd As SecurityDescriptor = CType(ent.Properties("msExchMailboxSecurityDescriptor").Value, SecurityDescriptor)
            Dim acl As AccessControlList = CType(sd.DiscretionaryAcl, AccessControlList)
            Dim ace As AccessControlEntry

            For Each ace In CType(acl, IEnumerable)

                AceList.Add(ace)

            Next

        Catch ex As Exception

            Return AceList

        End Try

        Return AceList

    End Function