[問題] Asp 如何連至AD抓資料? (OS.: 2003Server)

看板Web_Design作者 (傳說中的果汁學長)時間19年前 (2006/08/11 17:53), 編輯推噓1(101)
留言2則, 1人參與, 最新討論串1/1
原本的系統是架在 Windows 2000 Server + SQL 2000 下的 現在要把系統移植到 Windows 2003 Server + SQL 2005下.. 第一個碰到的難題就是 AD 抓不到 :( 在win2000下是可以正常的跑, 可是拿到win2003就不行了 我寫的測試程式如下: <% Dim sUserID, sPassword, Root, Dim DomainPath, schema, config,domain1,sSearchRoot,sADPath Dim ADSI_conn, ADSI_Command, ADSI_rs sUserID = "administrator" sPassword = "u6bj6" set Root=getobject("LDAP://RootDSE") DomainPath=Root.Get("DefaultNamingContext") sSearchRoot = "LDAP://" & DomainPath '建立ADO相關之ADSI物件 ' set ADSI_conn = createobject("ADODB.connection") set ADSI_Command = createobject("ADODB.command") set ADSI_rs = createobject("ADODB.Recordset") ' ' 設定 AD 連結參數並執行查詢 ' ADSI_conn.Provider = "AdsDsoObject" ADSI_conn.Properties("User ID") = sUserID ADSI_conn.Properties("Password") = sPassword ADSI_conn.Properties("Encrypt Password") = False ADSI_conn.Open sSearchRoot Set ADSI_Command.ActiveConnection = ADSI_conn ADSI_Command.CommandText = "select AdsPath from '" & sSearchRoot & _ "' where objectClass='user' and objectCategory='person' and " & _ " objectCategory='user'" Set ADSI_rs = ADSI_Command.Execute Do Until ADSI_rs.EOF sADPath = ADSI_rs.Fields("AdsPath").Value Response.Write "sAdPath = " & sADPath & "<br>" ADSI_rs.MoveNext Loop ADSI_rs.close set Root = Nothing set Domain1 = Nothing set ADSI_rs = Nothing set ADSI_Command = Nothing set ADSI_conn = Nothing %> 這支程式可以在 win2000下正常的跑, 但在 win2003下就跑不出來, 出現如下錯誤訊息 Provider 錯誤 '80040e09' 使用權限遭拒 發生錯誤的程式行在: Set ADSI_rs = ADSI_Command.Execute 這一行上.. 請問是不是Provider 的問題呀? 是要先安裝什麼才能跑 AdsDosObject 這個元件嗎? 如果是的話, 請問要去哪抓呢? 大感謝~~~ (公司居然把這個5年前寫的系統要我這個才來4年的人管, 真是沒天理啊~~) -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 220.229.61.172

08/12 04:34, , 1F
我記得當初我寫的時候 WEB USER 的權限要開很大...
08/12 04:34, 1F

08/12 04:34, , 2F
找找MSDN 吧 去取AD資料的文獻 真的很少
08/12 04:34, 2F
文章代碼(AID): #14t5EJyl (Web_Design)