【问题标题】:User.IsInRole with Active Directory authentication具有 Active Directory 身份验证的 User.IsInRole
【发布时间】:2011-10-30 16:11:36
【问题描述】:

我想了解 User.IsInRole 函数如何与 Windows 身份验证配合使用。是只让他们扮演一个角色,还是以某种方式分层?

例如,我有一个名为“GroupB”的域组,该组是“GroupA”的成员,另一个名为“GroupC”的组是“GroupB”的成员。如果我为 userA、userB 和 userC 调用 User.IsInRole("GroupB"),它只会为 userB 返回 true 吗?如果用户是域管理员,IsInRole() 总是返回 true 还是 false?

如果我想为外部合作伙伴创建一个组,并且我想基于此做出决定(例如为内部用户打开 Internet Explorer 和为外部用户使用特殊浏览器,但如果内部用户是域管理员,则我需要这个如果 User.IsInRole 总是为域管理员返回 true,它将打开一个特殊的浏览器)。出于安全原因,我需要确切知道这是如何工作的。

感谢您的帮助。我在互联网上搜索过,但没有找到任何相关信息。

【问题讨论】:

    标签: c# active-directory


    【解决方案1】:

    根据我的经验,这些函数不是递归的,除非它明确说明是递归的。 UserPrincipal.GetAuthorizationGroups() 例如是递归的。

    我不相信 User.IsInRole() 是。

    【讨论】:

    • 这是我一直在寻找的,并且可以递归工作!好的。感谢分享
    【解决方案2】:

    我建议浏览该网站及其链接文章。它会对你有很大帮助。 http://msdn.microsoft.com/en-us/library/z164t8hs(v=VS.71).aspx

    【讨论】:

      【解决方案3】:

      User.IsInRole 将使用 Windows AuthN 进行功能递归。它正在关闭您在登录时由 AD/本地 SAM 构建的安全令牌。该令牌包括您所属的所有组。

      【讨论】:

      • 如果你是域管理员,这个函数是否总是返回 true?
      猜你喜欢
      • 1970-01-01
      • 2023-01-11
      • 2019-10-04
      • 2010-11-05
      • 1970-01-01
      • 1970-01-01
      • 2014-09-25
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多