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
-
-
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 );
Nombre d’entrées de contrôle d’accès dans la liste de contrôle d’accès.
-
-
AclRevision
-
-
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 );
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.
-
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 |
|
| DLL |
|
| IID |
IID _ IADsAccessControlList est défini en tant que B7EE91CC-9BDD-11D0-852C-00C04FD8D503 |