1

[这是我已经在这里问过的问题的一个稍微更具体的版本:如何查询 Active Directory 对象的有效权限?- 希望我在这里收到的答案能帮助我更好地理解和判断我在那里收到的答案。]

非常具体地说,我目前正在寻找一种方法来验证当前用户是否对给定的 Active Directory 对象(例如另一个用户)具有特定于 Exchange 的“发送为”权限(这是所谓的“扩展权限” )(即邮箱)、启用邮件的公用文件夹或分发列表。通过组成员资格间接授予(或拒绝)的权限也被考虑在内,这一点很重要。从中长期来看,我非常想了解更多关于 Windows 安全模型及其 API 的信息。这个任务只是我的出发点。

在研究如何最好地在 Delphi 中实现一些可用的 C++ 示例时,我偶然发现了JWSCL(JEDI Windows 安全代码库)。但是,尽管最近似乎有一些与 AD 相关的代码的贡献,但 JWSCL 博客和 wiki 上的一些文档仍然指出“Active Directory 支持”尚未添加。

但是,这可能只是过时文档的问题吗?即使没有,我真的需要这个来完成这个特定的任务吗?我已经能够检索SECURITY_DESCRIPTOR我要检查使用的对象的属性IDirectoryObject.GetAttributes。获得该 SD 后,我检查 AD 对象的权限是否仍然有影响?尽管据说缺少 AD 支持,但我不能将它与已经存在的代码一起使用吗?
如果是这样,怎么做?

我已经尝试修改JWSCL 附带的GetEffectiveRightsFromAclWithAuthZ示例,但我已经无法从我的指针创建TJwSecurityDescriptor对象。PSECURITY_DESCRIPTOR简单地将其传递给TJwSecurityDescriptor.Create()失败并带有EJwsclInvalidSIDException.

有任何想法吗?我什至在正确的轨道上吗?

4

0 回答 0