IADsAccessControlList 属性方法
IADsAccessControlList 接口的属性方法获取或设置下表中所述的属性。 有关详细信息,请参阅 Interface 属性方法。
属性
-
AceCount
-
-
访问类型:读/写
-
脚本数据类型: LONG
-
// C++ method syntax HRESULT get_AceCount( [out] LONG* lnAceCount ); HRESULT put_AceCount( [in] LONG lnAceCount );
访问控制列表中的访问控制条目数。
-
-
AclRevision
-
-
访问类型:读/写
-
脚本数据类型: LONG
-
// C++ method syntax HRESULT get_AclRevision( [out] LONG* lnAclRevision ); HRESULT put_AclRevision( [in] LONG lnAclRevision );
访问控制列表的修订级别。 此值可以是 ACL_REVISION 或 ACL_REVISION_DS。 如果 ACL 包含特定于对象的 ACE,请使用 ACL_REVISION_DS 。 ACL 中的所有 ACE 必须位于同一修订级别。
-
示例
下面的代码示例显示 ACL 中的 ACE 数。
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
下面的代码示例显示 ACL 中的 ACE 数。
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;
}
要求
要求 | 值 |
---|---|
最低受支持的客户端 |
Windows Vista |
最低受支持的服务器 |
Windows Server 2008 |
标头 |
|
DLL |
|
IID |
IID_IADsAccessControlList定义为 B7企业版91CC-9BDD-11D0-852C-00C04FD8D503 |