permissions - 如何查询Active Directory对象的有效权限?

标签 permissions active-directory exchange-server adsi

我试图以编程方式确定当前用户是否对给定的Active Directory对象具有某些权限(特别是在这种情况下,我试图确定该用户是否具有另一个Exchange用户或通讯组列表对象的“发送为”权限)。

我已经弄清楚了如何使用ADSI访问ntSecurityDescriptor属性:我可以在IADsSecurityDescriptorDiscretionaryACL属性中枚举ACE。但:

  • 我如何根据该数据确定受托人是否明确允许或拒绝“发送为”许可?
  • 当通过组成员身份间接授予权限时,如何发现此问题?我是否真的需要自己(递归地)检查用户所属的所有组来解析有效权限?当然,必须有用于该任务的API ...

  • FWIW,我正在使用ActiveDs.dll类型库在Delphi中进行编码(即 native Win32代码),因此,.NET特定的解决方案对我没有太大帮助,除非其源代码为我提供了如何在 native 中执行相同操作的线索代码。 PowerShell也是如此。

    在任何人开始之前:我已经知道PR_EMS_AB_PUBLIC_DELEGATESPR_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/

    相关文章:

    php - 如何阻止特定文件夹向访客查看其内容?

    linux - Docker 安装卷不跟踪 nginx 日志文件

    soap - 在一次 'syncFolderItems' 操作中监控多个文件夹?

    azure - 如何将 MailKit 与 IMAP for Exchange 结合使用,将 OAuth2 用于守护程序/非交互式应用程序

    java - 使用 Javamail 访问 Microsoft Exchange 邮箱(IMAP、MS Exchange)

    android - 在Android 4.4及以上版本上写入外部存储

    使用c在linux中创建具有给定名称和权限的文件

    c# - 命名空间中不存在类型或命名空间名称 'DirectoryServices'?

    c# - 如何通过公用名更快地检索 Active Directory 用户?

    c# - 如何从 Active Directory 获取正确的数据以进行身份​​验证