【问题标题】:Authenticating user via active directory groups in classic ASP通过经典 ASP 中的活动目录组对用户进行身份验证
【发布时间】:2012-06-12 21:04:46
【问题描述】:

我们通过活动目录为 Intranet 站点设置了如下安全性。

首先,我们按部门(销售、会计等)设置安全组

其次,我们有一个用于 Intranet 站点的 AD 安全组,人们通过 NT 质询/响应登录。为此,我们称该组为“Intranet Users”

在内网用户下,我添加了允许使用内网的部门。

所以在 AD 中,您有 Intranet 用户,组的成员是销售和会计。

在经典 ASP 中我需要做的是针对 Intranet Users 下的组对用户进行身份验证。

我挖出了一些我在其他地方使用过的旧代码,但我无法让它工作,除非我对这个主题的 Google-fu 太糟糕了(一种明显的可能性)我在经典中找不到这样做的适当文档ASP。

此代码将获取组,但如果它是用户而不是组,则只会枚举其中的对象。

bAuthUser = False
Set objGroup = GetObject("WinNT://DOMAIN/Intranet Users")
For Each objMember In objGroup.Members
    If objMember.Class = "User" Then
          If objMember.Name = Request.ServerVariables("AUTH_USER") Then bAuthUser = True
    End If
Next

如果安全组中有实际用户,但该组中没有用户,只有其他安全组,则上述代码有效。

我需要做的是遍历“Intranet Users”中的组,然后遍历每个组中的用户进行身份验证。

我是在正确的轨道上还是完全偏离了轨道?

提前致谢。

【问题讨论】:

    标签: asp-classic vbscript active-directory


    【解决方案1】:

    这取决于您正在寻找的功能。

    如果目标是“每个人都可以访问这个站点,但如果他们是 Intranet 用户,他们可以获得这个额外的功能”,那么你的路径是正确的。

    如果您只想说“只有 Intranet 用户可以访问我的站点”,那么您可以利用 IIS 的一个未记录的功能。如果您进入文件夹安全选项,并从 ACL 中删除通用帐户并将 Intranet Users 组添加到 ACL,如果经过身份验证的用户不在 Intranet Users 中,IIS 将抛出 403 异常。

    【讨论】:

    • 嗯,我希望用户通过 NT 质询/响应,但根据他们是否在属于 Intranet Users 组的组中来限制他们在索引页面上看到的内容。基本上,我需要遍历属于 Intranet Users AD 组的成员组,然后查看属于每个部门组的用户。上面的代码允许我检查组内的用户,但我似乎无法弄清楚如何引用属于组成员的安全组。
    【解决方案2】:

    您可以根据对象的 LDAP 路径查找对象,尽管在this articlethis question 看起来是一个不错的起点之前,我还没有在 ASP 中这样做过。

    【讨论】:

    • 感谢您的链接,但我仍然无法让它为我工作。伙计,我不知道为什么这如此困难且记录不充分。我知道经典的 ASP 现在已经过时了,但是天哪,我本以为有人会在某个时候需要这样做!为了解决我去...
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-09-13
    • 1970-01-01
    • 2018-11-03
    • 1970-01-01
    • 2010-12-02
    相关资源
    最近更新 更多