Lesen eines Steuerelement Zugriffsrechts, das in der ACL eines Objekts festgelegt ist
Mit ADSI lesen Sie einen Steuerungs Zugriffsrechten ACE genauso wie jeden anderen ACE in einer ACL. Beachten Sie, dass Sie auch die Win32-Sicherheits-APIs zum Lesen von ACLs für Verzeichnisobjekte verwenden können. Steuerungs Zugriffsrechte verwenden jedoch die Eigenschaften der IADsAccessControlEntry -Schnittstelle auf eine Weise, die für das erteilen und Verweigern von Steuerungs Zugriffsrechten spezifisch ist:
- AccessMask muss ADS mit dem _ rechten _ DS- _ Steuerungs _ Zugriff enthalten.
- Der Flags -Wert ist ein Anzeige Kennzeichen- _ _ _ Objekttyp _.
- ObjectType ist die Zeichen folgen Form des rightsguid -Attributs des Zugriffsrechts für das Steuerelement. Das Zeichen folgen Format der GUID ist dasselbe Zeichen folgen Format wie die StringFromGUID2 -com-Bibliotheksfunktion.
- Der AceType ist entweder ADS _ AceType _ Access _ Allowed _ Object , um dem Vertrauens nehmer den Zugriff auf das Zugriffsrecht für den Vertrauens nehmer und das Zugriff auf das _ _ Zugriffs _ Verweigerungs _ Objekt für den Vertrauens nehmer zu verweigern
- Der Vertrauens nehmer ist der Sicherheits Prinzipal. Dies ist der Benutzer, die Gruppe, der Computer usw., auf den der ACE angewendet wird.
Verwenden Sie das folgende Verfahren zum Lesen eines ACE für ein ADSI-Objekt. Das folgende Verfahren gilt für C-und C++-Anwendungen.
So lesen Sie einen ACE für ein ADSI-Objekt
- Einen IADs -Schnittstellen Zeiger auf das-Objekt zu erhalten.
- Verwenden Sie die IADs:: Get -Methode, um die Sicherheits Beschreibung des-Objekts zu erhalten. Der Name der Eigenschaft, die die Sicherheits Beschreibung enthält, ist "ntSecurityDescriptor". Die-Eigenschaft wird als Variant zurückgegeben, der einen IDispatch -Zeiger enthält. Beachten Sie, dass das VT -Element VT _ Dispatch ist. Aufrufen von QueryInterface für diesen IDispatch -Zeiger zum Abrufen einer IADsSecurityDescriptor -Schnittstelle, um die Methoden für diese Schnittstelle für den Zugriff auf die Sicherheits Deskriptor-ACL zu verwenden.
- Verwenden Sie die IADsSecurityDescriptor:: get _ diskretionaryacl -Methode, um die ACL zu erhalten. Die-Methode gibt einen IDispatch -Zeiger zurück. Ruft QueryInterface für diesen IDispatch -Zeiger auf, um eine IADsAccessControlList -Schnittstelle zu erhalten, mit der die Methoden für diese Schnittstelle für den Zugriff auf die einzelnen ACEs in der ACL verwendet werden.
- Verwenden Sie die IADsAccessControlList:: get _ _ NewEnum -Methode, um die ACEs aufzulisten. Die Methode gibt einen IUnknown -Zeiger zurück. Ruft QueryInterface für diesen IUnknown -Zeiger auf, um eine IEnumVARIANT -Schnittstelle zu erhalten.
- Verwenden Sie die IEnumVARIANT:: Next -Methode, um die ACEs in der ACL aufzuzählen. Die-Eigenschaft wird als Variant zurückgegeben, der einen IDispatch -Zeiger enthält. Beachten Sie, dass das VT -Element VT _ Dispatch ist. Ruft QueryInterface für diesen IDispatch -Zeiger auf, um eine IADsAccessControlEntry -Schnittstelle zum Lesen des ACE abzurufen.
- Aufrufen der IADsAccessControlEntry:: get _ AccessMask -Methode, um die AccessMask abzurufen und zu überprüfen, ob der AccessMask -Wert für das ADS-Zugriffs Flag für das _ _ Zugriffsrecht DS- _ Steuer _ Element Wenn Sie über dieses Flag verfügt, enthält der ACE ein Zugriffsrecht für das Steuerelement.
- Ruft die IADsAccessControlEntry:: get _ Flags -Methode auf, um das Flag für den Objekttyp zu erhalten.
- Überprüfen Sie die Flags für ADS _ Flag- _ _ Objekttyp _ vorhanden Flag. Wenn Flags auf ADS Flag- _ _ _ Objekttyp _ vorhanden festgelegt ist, müssen Sie die IADsAccessControlEntry:: get _ ObjectType -Methode aufrufen, um eine Zeichenfolge abzurufen, die die rightsguid des Steuerelement Zugriffsrechts enthält, für das der ACE gilt.
- Wenden Sie die IADsAccessControlEntry:: get _ AceType -Methode an, um den ACE-Typ abzurufen. Der Typ ist ein ADS-AceType-Objekt, das auf das _ _ _ zulässige _ Objekt zugreifen kann, um dem Vertrauens nehmer das Zugriffsrecht für den Zugriff auf das Zugriffsrecht zu gewähren oder das Zugriff auf das _ _ Zugriffs _ _ Recht "ADS
- Wenden Sie die Methode IADsAccessControlEntry:: get _ Treuhänder an, um den Sicherheits Prinzipal abzurufen. Hierbei handelt es sich um Benutzer, Gruppen, Computer usw., auf die der ACE angewendet wird.
- Wenn Sie die Zeichen folgen ObjectType und Treuhänder abgeschlossen haben, verwenden Sie SysFreeString , um den Arbeitsspeicher für diese Zeichen folgen freizugeben.
- Wenn Sie mit den Schnittstellen fertig sind, müssen Sie Release zum Dekrement oder Release aller Schnittstellen Verweise aufzurufen.