我試圖在Active Directory中檢索看起來是多值字符串的對象屬性(請參閱canonicalName)。執行搜索後:使用JavaScript獲取LDAP多值字符串屬性
var conn;
conn.Open = 'Provider=ADsDSOObject;';
var command = '<LDAP://CN=Partitions,CN=Configuration,DC=domain,DC=com>;(&(objectcategory=crossRef)(systemFlags=3));name,nETBIOSName,nCName,canonicalName;onelevel';
var ado = new ActiveXObject('ADODB.Command');
ado.ActiveConnection = conn;
ado.CommandText = command;
var records = ado.Execute;
,並同時通過記錄循環:
while (!records.Eof){
...
records.MoveNext();
}
然後我嘗試並獲得canonicalName:
var cn = records.Fields('canonicalName').Value;
的問題是,JavaScript不intrepret cn作爲一個字符串或數組...如果你看看canonicalName的AD模式,你可以看到它配置了'isSingleValue = false',這是我認爲會導致問題的原因...
當使用Visual Studio跨過代碼時,我可以鑽取字符串值,並且QuickWatch顯示cn.value(0)返回字符串值。但是,當我鍵入了它不工作...
我已經試過了通用的方式得到的數值沒有運氣:
for (var i in cn) { alert(cn[i]); }
和
for (i = 0; i < cn.length; i++) { alert(cn[i]); }
無論是工程.. 。
如何讀取此對象的值?
什麼是更令人沮喪的是,我可以處理這個問題,而不使用VBScript ... – Dscoduc
沒有真正得到賞金系統中的任何問題...爲什麼我會用我的名譽點得到答案?畢竟,這是我的聲譽... – Dscoduc