我目前正在使用Active Directory重新编写Intranet网站,而古老的开发人员在VB中做了一切,我现在正在用C#和一些最新技术开发它。因此,我正在阅读他的代码,了解一些我很难掌握的功能(我快速浏览了VB以了解它是如何全局工作的)并且我不了解字符串在这里的工作原理。
例如,有以下声明:
Dim sGroups, oGroup
sGroups=activeDirectoryUserObject.memberOf //Returns groups that user belongs to
set oGroup = GetObject("LDAP://" & sGroups)
For j = 0 To UBound(sGroups)
Set oGroup = GetObject("LDAP://" & sGroups(j)) //Here!!
什么是sGroups(j)
?对我来说sGroups
是一个字符串而不是一个数组,那么这里发生了什么?
感谢您的帮助!
答案 0 :(得分:1)
伦纳德:
看来sGroups(j)是一个字符串,(j)部分是一个计数器。如果用户属于多个组,则可能会使用此功能。
此致
乔
答案 1 :(得分:1)
字符串未在VBS / VBA / VB6中编制索引。而且VB.NET中的索引方法也不同。因此,如果对象被索引," sGroups(j)" 它不是字符串。
找出sGroups的显而易见的方法是查看activeDirectoryUserObject及其memberOf属性。你应该做的,,你应该在这里包含那些代码,以便我们可以看到它。
如果它是一个没有文档的外部定义对象,则可以使用Typename()函数或VarType函数来提取信息。由于这是一个使用ASP脚本的网站,要么它将成为变体数组,要么脚本完全被破坏。
这两种方法都是可能的,因为你提供的脚本片段本身没有任何意义(另请参阅oGroup的重新定义,没有使用它的代码)。