如何在C#中为用户获取AD LDS条目的有效权限?

如何在C#中为用户获取AD LDS条目的有效权限?,c#,permissions,active-directory,ldap,C#,Permissions,Active Directory,Ldap,我有第三方应用程序使用AD LDS存储其层次结构数据,我需要在ASP.NET MVC中为此系统提供web UI。它使用目录条目上的DACL来控制用户对单个条目的访问权限 我发现很少有好文章解释如何阅读ActiveDirectoryAccessRulesforDirectoryEntry,但我找不到任何好方法来计算特定用户的有效权限。是否有任何支持Microsoft API或库可用,或者我需要发明自己的方法 调查类似主题的人员的参考URL: 这有帮助吗: 检查当前用户可以在对象上修改哪些属性的

我有第三方应用程序使用AD LDS存储其层次结构数据,我需要在ASP.NET MVC中为此系统提供web UI。它使用目录条目上的DACL来控制用户对单个条目的访问权限

我发现很少有好文章解释如何阅读
ActiveDirectoryAccessRules
for
DirectoryEntry
,但我找不到任何好方法来计算特定用户的有效权限。是否有任何支持Microsoft API或库可用,或者我需要发明自己的方法

调查类似主题的人员的参考URL:
  • 这有帮助吗:

    检查当前用户可以在对象上修改哪些属性的最便宜方法是检查其“allowedAttributesEffective”属性。这是AD动态计算的属性。它负责所有继承的权限和拒绝权限覆盖。类似地,您可以使用“allowedAttributes”检查当前用户可以读取哪些属性。当然,如果当前用户没有对整个对象的权限,则尝试读取“allowedAttributes”或“allowedAttributesEffective”将失败fail@Harvey:但这样我需要模拟我正在检查有效权限的用户,对吗?谢谢你的提示,我一定会查清楚的。@Ignor是的,你需要模拟用户来检查有效权限。您还可以查看AccessCheck和GetEffectiveAces。和。但是警告你。我们在使用这两个API时遇到了一些问题。顺便说一句,更正了我之前的评论。“AllowedAttributes”不返回读取权限。所以,不要使用它。“AllowedAttributeEffective”确实返回写入权限。@IgorRomanov您找到问题的解决方案了吗?@HarveyKwok,我们可以在其中找到对象的“AllowedAttributeEffective”和“allowedAttributes”属性。链接已断开。