線上訂房服務-台灣趴趴狗聯合訂房中心
發文 回覆 瀏覽次數:3685
推到 Plurk!
推到 Facebook!

請問使用LDAP(ADSI)進行公司內網帳號與密碼驗證的問題?

尚未結案
SharkLand
一般會員


發表:1
回覆:0
積分:0
註冊:2004-01-02

發送簡訊給我
#1 引用回覆 回覆 發表時間:2007-01-12 19:56:07 IP:122.124.xxx.xxx 訂閱
因為工作需要正在開發一個可以輸入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

發送簡訊給我
#2 引用回覆 回覆 發表時間:2007-01-15 09:40:32 IP:61.219.xxx.xxx 訂閱
用 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

發送簡訊給我
#3 引用回覆 回覆 發表時間:2007-02-03 08:53:21 IP:211.21.xxx.xxx 訂閱

===================引 用 文 章===================
註:因我沒有 AD 環境, 故上述程式, 未經測試.

我在windwos 2000,XP 上測試都OK,
在Win98SE 上執行,需要先裝dsclient,
執行過程也OK,但就在結束程式時,
會出現錯誤 invalid page fault in module WLDAP32.DLL,
查不出原因.
請問可能的原因是什麼?

ycl2005
一般會員


發表:15
回覆:14
積分:5
註冊:2005-10-01

發送簡訊給我
#4 引用回覆 回覆 發表時間:2007-02-03 08:56:10 IP:211.21.xxx.xxx 訂閱

===================引 用 文 章===================
本來驗證帳號密碼運作的好好的,後來某些user反應部份PC client無法正常work
經過詢問,似乎能正常做驗證的PC OS都是Windows 2000 professional
而有問題的都是Windows NT Workstation
不知道各位大德? 要如何令client可能win2000或winnt 甚至98的情況下
都能順利執行帳號密碼的驗證?

到微軟的網站找一下 dsclient , 早期 windows 98,NT 不支援AD,
要安裝一些程式才OK.

系統時間:2024-04-19 3:21:58
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!