Partager via


IADsSecurityUtility ::SetSecurityDescriptor, méthode (iads.h)

La méthode SetSecurityDescriptor définit le descripteur de sécurité pour le fichier, le partage de fichiers ou la clé de Registre spécifié.

Syntaxe

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

Paramètres

[in] varPath

Chaîne VARIANT qui contient le chemin d’accès de l’objet pour lequel définir le descripteur de sécurité. Les valeurs possibles sont répertoriées dans la liste suivante.

Fichier

Syntaxe de chemin d’accès de fichier valide. Par exemple : « c:\specs\public\adxml.doc » ou « \adsi\public\dsclient.exe ».

Partage de fichiers

Syntaxe de chemin de fichier valide pour un partage de fichiers. Par exemple : « \adsi\public ».

Clé de Registre

Syntaxe de Registre valide. Par exemple, « HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\ADs ».

[in] lPathFormat

Contient l’une des valeurs ADS_PATHTYPE_ENUM qui spécifie le format du paramètre varPath .

[in] varData

VARIANT qui contient le nouveau descripteur de sécurité. Le format du descripteur de sécurité est spécifié par le paramètre lDataFormat .

[in] lDataFormat

Contient l’une des valeurs ADS_SD_FORMAT_ENUM qui spécifie le format du descripteur de sécurité contenu dans le paramètre VarData . La liste suivante identifie les valeurs possibles pour ce paramètre et le format du paramètre VarData .

Valeur retournée

Retourne S_OK en cas de réussite ou un code d’erreur COM ou Win32 dans le cas contraire. Les codes d’erreur possibles sont répertoriés dans la liste suivante.

Remarques

Les entrées de contrôle d’accès doivent apparaître dans l’ordre suivant dans la liste de contrôle d’accès d’un descripteur de sécurité :

  • ACL avec accès refusé qui s’appliquent à l’objet lui-même
  • ACL avec accès refusé qui s’appliquent à un enfant de l’objet, comme un jeu de propriétés ou une propriété
  • ACL autorisés par accès qui s’appliquent à l’objet lui-même
  • ACL autorisées par accès qui s’appliquent à un enfant de l’objet, comme un jeu de propriétés ou une propriété
  • Toutes les ACL héritées

Exemples

L’exemple de code suivant montre comment définir un descripteur de sécurité pour un fichier.

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

Configuration requise

Condition requise Valeur
Client minimal pris en charge Windows Vista
Serveur minimal pris en charge Windows Server 2008
Plateforme cible Windows
En-tête iads.h
DLL Activeds.dll

Voir aussi

ADS_PATHTYPE_ENUM

ADS_SD_FORMAT_ENUM

ConvertSecurityDescriptor

IADsSecurityDescriptor

IADsSecurityUtility