我试图以编程方式确定当前用户是否对给定的Active Directory对象具有某些权限(特别是在这种情况下,我试图确定该用户是否具有另一个Exchange用户或通讯组列表对象的“发送为”权限)。
我已经弄清楚了如何使用ADSI访问ntSecurityDescriptor
属性:我可以在IADsSecurityDescriptor
的DiscretionaryACL
属性中枚举ACE。但:
FWIW,我正在使用ActiveDs.dll类型库在Delphi中进行编码(即 native Win32代码),因此,.NET特定的解决方案对我没有太大帮助,除非其源代码为我提供了如何在 native 中执行相同操作的线索代码。 PowerShell也是如此。
在任何人开始之前:我已经知道
PR_EMS_AB_PUBLIC_DELEGATES
和PR_EMS_AB_PUBLIC_DELEGATES_BL_O
扩展MAPI属性。但是,这不是我追求的目标。这些属性指的是“代表发送”权限(也称为代理人),而不是“代理发送”权限,这是完全不同的事情。
最佳答案
这是解释-http://msdn.microsoft.com/en-us/library/windows/desktop/ms675580(v=VS.85).aspx的MSDN文章。随附的示例显示了如何调用API。
关于permissions - 如何查询Active Directory对象的有效权限?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8328801/