IADsSecurityDescriptor-Schnittstelle (iads.h)
Die IADsSecurityDescriptor-Schnittstelle ermöglicht den Zugriff auf Eigenschaften eines ADSI-Sicherheitsdeskriptorobjekts.
Vererbung
Die IADsSecurityDescriptor-Schnittstelle erbt von der IDispatch-Schnittstelle . IADsSecurityDescriptor verfügt auch über folgende Arten von Membern:
Methoden
Die IADsSecurityDescriptor-Schnittstelle verfügt über diese Methoden.
IADsSecurityDescriptor::CopySecurityDescriptor Die IADsSecurityDescriptor::CopySecurityDescriptor-Methode kopiert ein ADSI-Sicherheitsdeskriptorobjekt, das Sicherheitsdaten zu einem Objekt enthält. |
Hinweise
Verwenden Sie diese Schnittstelle, um die Zugriffssteuerungen in ein Active Directory-Verzeichnisdienstobjekt zu überprüfen und zu ändern. Sie können es auch verwenden, um Kopien eines Sicherheitsdeskriptors zu erstellen. Um diese Schnittstelle abzurufen, verwenden Sie die IADs.Get-Methode , um das ntSecurityDescriptor-Attribut des -Objekts abzurufen. Weitere Informationen zum Erstellen einer neuen Sicherheitsbeschreibung und zum Festlegen für ein Objekt finden Sie unter Erstellen eines Sicherheitsdeskriptors für ein neues Verzeichnisobjekt und NULL-DACLs und leere DACLs.
Häufig ist es nicht möglich, alle Teile der Sicherheitsbeschreibung zu ändern. Wenn der aktuelle Benutzer beispielsweise die volle Kontrolle über ein Objekt hat, aber kein Administrator ist und nicht Besitzer des Objekts ist, kann der Benutzer die DACL ändern, aber den Besitzer nicht ändern. Dies führt zu einem Fehler, wenn der ntSecurityDescriptor aktualisiert wird. Um dieses Problem zu vermeiden, kann die IADsObjectOptions-Schnittstelle verwendet werden, um die spezifischen Teile der Sicherheitsbeschreibung anzugeben, die geändert werden sollen.
Beispiele
Im folgenden Codebeispiel wird veranschaulicht, wie die IADsObjectOptions-Schnittstelle verwendet wird, um nur bestimmte Teile der Sicherheitsbeschreibung zu ändern.
Const ADS_OPTION_SECURITY_MASK = 3
Const ADS_SECURITY_INFO_OWNER = 1
Const ADS_SECURITY_INFO_GROUP = 2
Const ADS_SECURITY_INFO_DACL = 4
Dim obj as IADs
Dim sd as IADsSecurityDescriptor
Dim oOptions as IADsObjectOptions
' Bind to the object.
Set obj = GetObject("LDAP://.....")
' Get the IADsSecurityDescriptor.
Set sd = obj.Get("ntSecurityDescriptor")
' Modify the DACL as required.
' Get the IADsObjectOptions for the object - not the IADsSecurityDescriptor.
Set oOptions = obj
' Set options so that only the DACL will be updated.
oOptions.SetOption ADS_OPTION_SECURITY_MASK, ADS_INFO_DACL
' Update the security descriptor.
obj.Put "ntSecurityDescriptor", sd
obj.SetInfo
Das folgende Codebeispiel zeigt, wie Daten aus einer Sicherheitsbeschreibung angezeigt werden.
' Get the security descriptor.
Dim x As IADs
Dim sd As IADsSecurityDescriptor
On Error GoTo Cleanup
Set x = GetObject("LDAP://DC=Fabrikam,DC=com")
Set sd = x.Get("ntSecurityDescriptor")
Debug.Print sd.Control
Debug.Print sd.Group
Debug.Print sd.Owner
Debug.Print sd.Revision
Cleanup:
If (Err.Number<>0) Then
MsgBox("An error has occurred. " & Err.Number)
End If
Set x = Nothing
Set sd = Nothing
Das folgende Codebeispiel zeigt, wie Daten aus einem Sicherheitsdeskriptor eines Verzeichnisobjekts angezeigt werden.
HRESULT DisplaySD(IADs *pObj)
{
IADsSecurityDescriptor *pSD = NULL;
BSTR bstr = NULL;
long lVal = 0;
HRESULT hr = S_OK;
VARIANT var;
VariantInit(&var);
if(pObj==NULL)
{
return E_FAIL;
}
hr = pObj->Get(CComBSTR("ntSecurityDescriptor"), &var);
if(FAILED(hr)){goto Cleanup;}
hr = V_DISPATCH(&var)->QueryInterface(IID_IADsSecurityDescriptor,(void**)&pSD);
if(FAILED(hr)){goto Cleanup;}
hr = pSD->get_Control(&lVal);
printf("SD Control = %d\n",lVal);
hr = pSD->get_Owner(&bstr);
printf("SD Owner = %S\n",bstr);
SysFreeString(bstr);
hr = pSD->get_Group(&bstr);
printf("SD Group = %S\n",bstr);
SysFreeString(bstr);
hr = pSD->get_Revision(&lVal);
printf("SD Revision= %d\n",lVal);
Cleanup:
VariantClear(&var);
if(pSD) pSD->Release();
return hr;
}
Anforderungen
Anforderung | Wert |
---|---|
Unterstützte Mindestversion (Client) | Windows Vista |
Unterstützte Mindestversion (Server) | Windows Server 2008 |
Zielplattform | Windows |
Kopfzeile | iads.h |
Weitere Informationen
Erstellen eines Sicherheitsdeskriptors für ein neues Verzeichnisobjekt