我正在尝试以编程方式确定当前用户是否对给定的Active Directory对象具有某些权限(特别是在这种情况下,我正在尝试确定用户是否具有另一个Exchange用户的“代理发送”权限或分发列表对象)。
我已经弄清楚如何使用ADSI访问ntSecurityDescriptor
属性:我可以枚举IADsSecurityDescriptor
的{{1}}属性中的ACE。但是:
FWIW,我使用ActiveDs.dll类型库在Delphi中编码(即本机Win32代码),因此特定于.NET的解决方案对我没有多大帮助,除非他们的源代码为我提供了如何做同样的线索本机代码中的东西。 PowerShell也是如此。
在任何人开始之前:我已经了解DiscretionaryACL
和PR_EMS_AB_PUBLIC_DELEGATES
扩展MAPI属性。但是,这不是我追求的。这些属性引用“代表发送”-right(a.k.a。代表),而不是“发送为”权限,这是完全不同的事情。
答案 0 :(得分:2)
以下是MSDN文章解释 - http://msdn.microsoft.com/en-us/library/windows/desktop/ms675580(v=VS.85).aspx。附件示例显示了如何调用API。