首页 > 解决方案 > ASP 崩溃 - AD 查询和 AD 配置文件缺少“首字母”的问题

问题描述

当 AD 配置文件缺少中间首字母时,我的 AD 查询遇到了麻烦。这是 vbscript 片段

strRSUser = "SELECT displayname,givenName,initials,sn,employeeID,postalcode,memberOf,objectCategory,physicaldeliveryoffi cename,mail,manager FROM 'LDAP://" & strDomain &"' WHERE samaccountname = '"& varUser &"' ORDER by name "
rsUser.Open strRSUser, connAD,1,1

确保记录集不为空(即这是一个有效用户),然后设置会话变量

If NOT (rsUser.BOF AND rsUser.EOF) Then
Dim varInitials
Session("userAccess") = 1
varEmail = rsUser.Fields.Item("mail").Value
varEmployeeID = rsUser.Fields.Item("employeeID").Value
varFirstName = rsUser.Fields.Item("givenName").Value
varInitials = rsUser.Fields.Item("initials").Value
varLastName = rsUser.Fields.Item("sn").Value
varOffice = rsUser.Fields.Item("physicaldeliveryofficename").Value
varInitialsChk = IsEmpty(varInitials)
Session.Timeout = 60

Else
Session("userAccess") = 0

' End valid user check
End If

我的问题:

我需要考虑 varInitials 可能不存在的可能性。还没找到办法。因此,对于在 AD 中没有中间首字母的用户,下面的 javascript 行会中断。到目前为止,我唯一的解决方案是完全省略 varInitials,但这并不理想。当 varInitials 存在时,我想用它们填充 from 字段:

"if(emptyString.test(theForm.ctl00$ctl00$mpcSingleContent$cntrlID_23172.value)) {" & vbCrLf & _
" theForm.ctl00$ctl00$mpcSingleContent$cntrlID_23172.value = """ + varLastName + ", " + varFirstName + " " + varInitials + """" & vbCrLf & _
"}" & vbCrLf & _

谁能帮忙?

标签: vbscript

解决方案


推荐阅读