通过经典ASP中的活动目录组对用户进行身份验证

时间:2012-06-04 14:13:17

标签: asp-classic vbscript active-directory

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

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

其次,我们有一个内部网站点的AD安全组,人们通过NT质询/响应登录。为此,我们可以呼叫该组" Intranet用户"

在Intranet用户中,我添加了允许使用Intranet的部门。

因此,在AD中,您拥有Intranet用户,该组的成员是销售和会计。

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

我挖出了一些我在其他地方使用过的旧代码,但是我无法将其付诸实践,除非我这个主题的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用户"然后通过每个组中的用户进行身份验证。

我是在正确的轨道还是完全离开?

提前致谢。

2 个答案:

答案 0 :(得分:1)

这取决于您要查找的功能。

如果目标是“每个人都可以访问此站点,但如果他们在Intranet用户中,则会获得此额外功能”,那么您所使用的路径是正确的。

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

答案 1 :(得分:1)

你可以根据他们的LDAP路径查找对象,虽然我没有在ASP this article看起来像this question的好起点之前在ASP中这样做。

相关问题