Freigeben über


IADsSecurityUtility::SetSecurityDescriptor-Methode (iads.h)

Die SetSecurityDescriptor-Methode legt den Sicherheitsdeskriptor für die angegebene Datei, Dateifreigabe oder den angegebenen Registrierungsschlüssel fest.

Syntax

HRESULT SetSecurityDescriptor(
  [in] VARIANT varPath,
  [in] long    lPathFormat,
  [in] VARIANT varData,
  [in] long    lDataFormat
);

Parameter

[in] varPath

Eine VARIANT-Zeichenfolge , die den Pfad des Objekts enthält, für das der Sicherheitsdeskriptor festgelegt werden soll. Mögliche Werte sind in der folgenden Liste aufgeführt.

Datei

Eine gültige Dateipfadsyntax. Beispiel: "c:\specs\public\adxml.doc" oder "\adsi\public\dsclient.exe".

Dateifreigabe

Eine gültige Dateipfadsyntax für eine Dateifreigabe. Beispiel: "\adsi\public".

Registrierungsschlüssel

Eine gültige Registrierungssyntax. Beispiel: "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\ADs".

[in] lPathFormat

Enthält einen der ADS_PATHTYPE_ENUM-Werte , der das Format des varPath-Parameters angibt.

[in] varData

Ein VARIANT-Wert , der den neuen Sicherheitsdeskriptor enthält. Das Format des Sicherheitsdeskriptors wird durch den lDataFormat-Parameter angegeben.

[in] lDataFormat

Enthält einen der ADS_SD_FORMAT_ENUM-Werte , der das Format des Sicherheitsdeskriptors angibt, der im VarData-Parameter enthalten ist. In der folgenden Liste werden die möglichen Werte für diesen Parameter und das Format des VarData-Parameters angegeben.

Rückgabewert

Gibt S_OK zurück, wenn erfolgreich oder andernfalls ein COM- oder Win32-Fehlercode. Mögliche Fehlercodes sind in der folgenden Liste aufgeführt.

Hinweise

Zugriffssteuerungseinträge müssen in der Zugriffssteuerungsliste eines Sicherheitsdeskriptors in der folgenden Reihenfolge angezeigt werden:

  • Zugriffsverweigerungs-ACEs, die für das Objekt selbst gelten
  • Zugriffsverweigerungs-ACEs, die für ein untergeordnetes Objekt gelten, z. B. einen Eigenschaftensatz oder eine Eigenschaft
  • Zugriffsberechtigungs-ACEs, die für das Objekt selbst gelten
  • Zugriffsberechtigungs-ACEs, die für ein untergeordnetes Objekt gelten, z. B. einen Eigenschaftssatz oder eine Eigenschaft
  • Alle geerbten ACEs

Beispiele

Im folgenden Codebeispiel wird gezeigt, wie ein Sicherheitsdeskriptor für eine Datei festgelegt wird.

Dim dacl as IADsAccessControlList
Dim sd as IADsSecurityDescriptor
Dim newAce as New AccessControlEntry
Dim sdUtil as New ADsSecurityUtility

Set sd = sdUtil.GetSecurityDescriptor("c:\specs\adsixml.doc", ADS_PATH_FILE, ADS_SD_FORMAT_IID )
Set dacl = sd.DiscretionaryAcl
 
' Add a new ACE for Jeff Smith. 
newAce.Trustee = "Fabrikam\jeffsmith" 
newAce.AccessMask = ADS_RIGHT_GENERIC_READ Or ADS_RIGHT_GENERIC_EXECUTE 

newAce.AceType = ADS_ACETYPE_ACCESS_ALLOWED 

dacl.AddAce newAce 
sd.DiscretionaryAcl = dacl 
sdUtil.SetSecurityDescriptor "c:\specs\adsixml.doc", ADS_PATH_FILE, sd, ADS_SD_FORMAT_IID

Cleanup:
    If (Err.Number<>0) Then
        MsgBox("An error has occurred. " & Err.Number)
    End If
    Set dacl = Nothing
    Set sd = Nothing
    Set newAce = Nothing
    Set sdUtil = Nothing

Anforderungen

Anforderung Wert
Unterstützte Mindestversion (Client) Windows Vista
Unterstützte Mindestversion (Server) Windows Server 2008
Zielplattform Windows
Kopfzeile iads.h
DLL Activeds.dll

Weitere Informationen

ADS_PATHTYPE_ENUM

ADS_SD_FORMAT_ENUM

ConvertSecurityDescriptor

IADsSecurityDescriptor

IADsSecurityUtility