【问题标题】:How to get effective permissions for a user on AD LDS entry in C#?如何在 C# 中为用户获取 AD LDS 条目的有效权限?
【发布时间】:2011-05-03 13:03:54
【问题描述】:

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

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

调查类似主题的人的参考网址:

  • Writing your own AD/ADAM permissions editor - 3
  • The .NET developer's guide to directory services programming
  • Access control lists in C#
  • 【问题讨论】:

    • 检查当前用户可以修改对象的哪些属性的最便宜的方法是检查其“allowedAttributesEffective”属性。这是 AD 动态计算的属性。它负责所有继承的权限并拒绝权限覆盖。同样,您可以使用“allowedAttributes”来检查当前用户可以读取哪些属性。当然,如果当前用户没有整个对象的权限,那么读取“allowedAttributes”或“allowedAttributesEffective”的尝试就会失败
    • @Harvey:但这样我就需要冒充正在检查有效权限的用户,对吧?感谢您的提示,我一定会检查一下。
    • @Ignor 是的,需要冒充用户查看有效权限。您还可以查看 AccessCheck 和 GetEffectiveAces。 msdn.microsoft.com/en-us/library/aa374815(v=vs.85).aspxmsdn.microsoft.com/en-us/library/aa446637(v=vs.85).aspx。但是警告你。我们在使用这两个 API 时遇到了一些问题。顺便说一句,对我之前评论的更正。 “allowedAttribues”不返回读取权限。所以,不要使用它。 “AllowedAttributeEffective”确实返回写入权限。
    • @IgorRomanov 你找到解决问题的方法了吗?
    • @HarveyKwok 我们可以在哪里找到对象的“allowedAttributesEffective”和“allowedAttributes”属性属性。

    标签: c# permissions active-directory ldap


    【解决方案1】:
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-07-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-03-16
    相关资源
    最近更新 更多