1

AzMan在 Windows Server 2003 上使用,并且我编写了一个管理应用程序,该应用程序完全隐藏AzManMMC安全团队之外。
但是,我很难实现MMC.

我有一个名为 的角色User,以及一个名为 的角色Branch User,它只包含User角色。我想User在所有数据(Role Assignments)级别分配角色Branch User,在范围级别分配角色。
但是,我找不到以编程方式将Branch User角色分配给范围而不丢失其定义的方法。我可以分配角色(通过调用CreateRole范围),但它似乎只是创建了一个新的空白角色。当我在 中右键单击它MMC,单击属性,然后单击Show Definition,它没有任何内容。

此外,如果我尝试调用AddTaskIAzRole对象来添加User它,它不会像预期的那样工作。它会将角色中的所有任务添加User到我的Branch User角色中,但不会添加角色本身。

有没有办法做到这一点?

4

1 回答 1

1

是的,在 WIN2k3 上这是正确的方法。不幸的是,在 Vista/Win2k8 之前的 AzMan 版本中,角色定义是Task设置task.IsRoleDefinition1. 在较新的版本中,它有自己的命名类。

基本上CreateRole()是创建 a Role Assignment,而不是 a Role Definition(这不一定需要有 name Branch User,它可以是任何东西)。角色分配包含角色/任务/操作和成员/用户的定义之间的链接。

然后,您将角色添加Branch UserRole Assignmentusing 中app.AddTask()

要仅针对特定范围执行此操作,您需要调用app.OpenScope(或者app.CreateScope,如果是新的)返回一个IAzScope对象。然后,您可以在scope.CreateTask或上执行上述所有操作scope.CreateRole

于 2009-11-12T18:06:43.623 回答