請問使用LDAP(ADSI)進行公司內網帳號與密碼驗證的問題? |
尚未結案
|
SharkLand
一般會員 ![]() ![]() 發表:1 回覆:0 積分:0 註冊:2004-01-02 發送簡訊給我 |
因為工作需要正在開發一個可以輸入NT帳號與密碼進行驗證的Login畫面
先前看過一個範例,程式碼如下 function ADsOpenObject; external 'activeds.dll' name 'ADsOpenObject'; function check(Username, Password: String): Boolean; var hr: integer; obj: IUnknown; begin hr := ADsOpenObject('LDAP://xxx', Username, Password, ADS_SECURE_AUTHENTICATION , IADs, obj ); Result:= Succeeded(hr); end; 本來驗證帳號密碼運作的好好的,後來某些user反應部份PC client無法正常work 經過詢問,似乎能正常做驗證的PC OS都是Windows 2000 professional 而有問題的都是Windows NT Workstation 不知道各位大德 要如何令client可能win2000或winnt 甚至98的情況下 都能順利執行帳號密碼的驗證? 謝謝大家 |
Mickey
版主 ![]() ![]() ![]() ![]() ![]() 發表:77 回覆:1882 積分:1390 註冊:2002-12-11 發送簡訊給我 |
用 ADO 做...缺點是要有...M$ 的 MDAC....不過現在PC....好像很少"乾淨"到沒有 MDAC 的...哈哈.
參考看看 uses ADODB; function checkAD(ADPath, Username, Password: String): Boolean; const ProviderStr ='Provider=ADsDSOObject;User ID=%s;Password=%s;Encrypt Password=False; Mode=Read;Bind Flags=0;ADSI Flag=-2147483648'; ChkADSQL='SELECT cn FROM '#39'%s'#39' WHERE objectClass='#39'user'#39; var ChkAD : TADOQuery; begin ChkAD := TADOQuery.Create(nil); try ChkAD.ConnectionString := Format(ProviderStr,[Username,Password]); ChkAD.SQL.Text := Format(ChkADSQL,[ADPath]); try ChkAD.Open; Result := (ChkAD.RecordCount>0); except Result := False; end; finally FreeAndNil(ChkAD); end; end; 註:因我沒有 AD 環境, 故上述程式, 未經測試. |
ycl2005
一般會員 ![]() ![]() 發表:15 回覆:14 積分:5 註冊:2005-10-01 發送簡訊給我 |
|
ycl2005
一般會員 ![]() ![]() 發表:15 回覆:14 積分:5 註冊:2005-10-01 發送簡訊給我 |
===================引 用 文 章=================== 本來驗證帳號密碼運作的好好的,後來某些user反應部份PC client無法正常work 經過詢問,似乎能正常做驗證的PC OS都是Windows 2000 professional 而有問題的都是Windows NT Workstation 不知道各位大德? 要如何令client可能win2000或winnt 甚至98的情況下 都能順利執行帳號密碼的驗證? 到微軟的網站找一下 dsclient , 早期 windows 98,NT 不支援AD, 要安裝一些程式才OK. |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |