以下是一些关于 IAzRoleAssignments 接口的基本信息:
接口定义
interface IAzRoleAssignments : public IDispatch
头文件
#include <azroles.h>
继承
- IAzRoleAssignments 接口继承自 IDispatch 接口。
接口描述
IAzRoleAssignments 接口提供了一组用于管理角色分配的方法。它允许您添加、删除和列举角色分配。
方法列表
1. AddRoleAssignment: 向集合中添加一个新的角色分配。
HRESULT AddRoleAssignment(
BSTR bstrSid,
VARIANT varRole
);
2. Delete: 从集合中删除指定的角色分配。
HRESULT Delete(
VARIANT varSid
);
3. get__NewEnum: 获取一个用于循环访问集合的枚举器。
IUnknown* get__NewEnum();
4. Item: 获取集合中指定索引位置的角色分配。
HRESULT Item(
VARIANT varIndex,
VARIANT *pvarRole
);
5. get_Count: 获取集合中角色分配的数量。
long get_Count();
使用示例
// 创建 AzMan 对象
IAzAuthorizationStore *pAzManStore = NULL;
CoCreateInstance(CLSID_AzAuthorizationStore, NULL, CLSCTX_INPROC_SERVER, IID_IAzAuthorizationStore, (void**)&pAzManStore);
// 打开存储
pAzManStore->Initialize(0, L"C:\\Path\\To\\Your\\AzMan\\Store", NULL);
// 获取角色分配集合
IAzRoleAssignments *pRoleAssignments = NULL;
pAzManStore->get_RoleAssignments(&pRoleAssignments);
// 添加角色分配
pRoleAssignments->AddRoleAssignment(L"S-1-5-21-1234567890-1234567890-1234567890-1001", L"MyRole");
// 删除角色分配
pRoleAssignments->Delete(L"S-1-5-21-1234567890-1234567890-1234567890-1001");
// 获取角色分配数量
long count;
pRoleAssignments->get_Count(&count);
// 获取角色分配
VARIANT varRole;
pRoleAssignments->Item(1, &varRole);
// 释放资源
pRoleAssignments->Release();
pAzManStore->Release();
请注意,以上代码只是一个简单的示例,并且需要根据您的具体需求进行适当的修改。在实际应用中,您可能需要处理错误、检查返回的 HRESULT 值等。
转载请注明出处:http://www.zyzy.cn/article/detail/23972/Win32 API/Azroles.h/IAzRoleAssignments