Méthodes de propriété IADsAccessControlList

Les méthodes de propriété de l’interface IADsAccessControlList obtiennent ou définissent les propriétés décrites dans le tableau suivant. Pour plus d’informations, consultez méthodes de propriété d’interface.

Propriétés

AceCount

Nombre d’entrées de contrôle d’accès dans la liste de contrôle d’accès.

Type d’accès : lecture/écriture

Type de données de script : long

// C++ method syntax
HRESULT get_AceCount(
  [out] LONG* lnAceCount
);
HRESULT put_AceCount(
  [in] LONG lnAceCount
);

AclRevision

Niveau de révision d’une liste de contrôle d’accès. Cette valeur peut être _ révision de la liste de contrôle d’accès ou révision de la liste de contrôle d’accès _ _. Utilisez la _ révision _ de la liste de contrôle d’accès si la liste de contrôle d’accès contient un ACE spécifique à l’objet. Toutes les entrées du contrôle d’accès d’une liste de contrôle d’accès doivent être au même niveau de révision.

Type d’accès : lecture/écriture

Type de données de script : long

// C++ method syntax
HRESULT get_AclRevision(
  [out] LONG* lnAclRevision
);
HRESULT put_AclRevision(
  [in] LONG lnAclRevision
);

Exemples

L’exemple de code suivant affiche le nombre d’entrées du contrôle d’accès dans une liste de contrôle d’accès.

Dim x as IADs
Dim sd As IADsSecurityDescriptor
Dim Dacl As IADsAccessControlList

On Error GoTo Cleanup

Set x = GetObject("LDAP://OU=Sales,DC=Fabrikam,DC=com")
Set sd = x.Get("ntSecurityDescriptor")
Set Dacl = sd.DiscretionaryAcl
Debug.Print Dacl.AceCount

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

L’exemple de code suivant affiche le nombre d’entrées du contrôle d’accès dans une liste de contrôle d’accès.

HRESULT ShowACEInACL(LPWSTR guestPath,LPWSTR user,LPWSTR passwd)
{
  IADs *pObj = NULL;
  IADsSecurityDescriptor *psd = NULL;
  HRESULT hr = S_OK;
  VARIANT var;

  VariantInit(&var);

  hr = ADsOpenObject(guestPath,user,passwd,ADS_SECURE_AUTHENTICATION,
                     IID_IADs,(void**)&pObj);
  if(FAILED(hr)) {
      printf("hr = %x\n",hr);
      return hr;
  }
  else {
      BSTR bstr = NULL;
      pObj->get_Class(&bstr);
      printf("Object class: %S\n",bstr);
      SysFreeString(bstr);
  }

  hr = pObj->Get(CComBSTR("ntSecurityDescriptor"), &var);
  pObj->Release();

  if(FAILED(hr)) {
      printf("Get ntSD: hr = %x\n",hr);
      return hr;
  }

  hr = V_DISPATCH(&var)->QueryInterface(IID_IADsSecurityDescriptor,
                                        (void**)&psd);

  if(FAILED(hr)) {
      printf("DISP: hr = %x\n",hr);
      VariantClear(&var);
      return hr;
  }

  IDispatch *pDisp = NULL;
  hr = psd->get_DiscretionaryAcl(&pDisp);
  VariantClear(&var);

  if(FAILED(hr)) {
      printf("get_DACL : hr = %x\n",hr);
      return hr;
  }

  IADsAccessControlList *pAcl = NULL;
  hr = pDisp->QueryInterface(IID_IADsAccessControlList,(void**)&pAcl);
  pDisp->Release();

  if(FAILED(hr)) {
      printf("QI ACL: hr = %x\n",hr);
      return hr;
  }

  long count = 0;
  hr = pAcl->get_AceCount(&count);
  pAcl->Release();
  if(FAILED(hr)) {
      printf("Count: hr = %x\n",hr);
      return hr;
  }

  printf("AceCount = %d\n",count);

  return hr;
}

Configuration requise

Condition requise Valeur
Client minimal pris en charge
Windows Vista
Serveur minimal pris en charge
Windows Server 2008
En-tête
IADs. h
DLL
Activeds.dll
IID
IID _ IADsAccessControlList est défini en tant que B7EE91CC-9BDD-11D0-852C-00C04FD8D503

Voir aussi

IADsAccessControlList

IEnumVARIANT

IADsAccessControlEntry

IADsSecurityDescriptor