如何使用Delphi讀取NT或2000的帳號及密碼做認證 |
答題得分者是:chiehmin
|
JamesChen
一般會員 發表:3 回覆:1 積分:0 註冊:2002-04-14 發送簡訊給我 |
|
chiehmin
高階會員 發表:13 回覆:134 積分:134 註冊:2002-05-23 發送簡訊給我 |
{ 檢查NT登入帳號密碼 }
function checkNTPass(iUserID, iPassword, iRemoteName: String): Boolean;
var
lpNetResource: _NETRESOURCE;
begin
lpNetResource.dwType := RESOURCETYPE_ANY;
lpNetResource.lpLocalName := Nil;
lpNetResource.lpRemoteName := PChar(iRemoteName);
lpNetResource.lpProvider := Nil;
case WNetAddConnection2(lpNetResource, PChar(iPassword), PChar(iUserID), 0) of
NO_ERROR: begin
Result := True;
if WNetCancelConnection2(PChar(iRemoteName), 0, true) <> NO_ERROR then
//showMessage('無法離線')
else
//showMessage('已離線');
end else
Result := False;
end;
end; 發表人 - chiehmin 於 2002/10/17 08:54:45
|
jaya
初階會員 發表:9 回覆:70 積分:30 註冊:2002-05-22 發送簡訊給我 |
|
chiehmin
高階會員 發表:13 回覆:134 積分:134 註冊:2002-05-23 發送簡訊給我 |
Edit1輸入帳號
Edit2輸入密碼
Edit3輸入NT主機名稱如 \\test
引言: 請教:這個函式要怎麼用呀? 我在自己的電腦編譯通過,用下面的方式測試,卻一直無法通過. 能夠幫幫忙、給我個範例、教我怎麼用嗎? procedure TForm1.Button2Click(Sender: TObject); begin If checkNTPass(Edit1.Text ,Edit2.Text,Edit3.Text) Then Memo1.Lines.Add('OK') Else Memo1.Lines.Add('False'); end; |
jaya
初階會員 發表:9 回覆:70 積分:30 註冊:2002-05-22 發送簡訊給我 |
|
jaya
初階會員 發表:9 回覆:70 積分:30 註冊:2002-05-22 發送簡訊給我 |
|
chiehmin
高階會員 發表:13 回覆:134 積分:134 註冊:2002-05-23 發送簡訊給我 |
|
jaya
初階會員 發表:9 回覆:70 積分:30 註冊:2002-05-22 發送簡訊給我 |
|
jaya
初階會員 發表:9 回覆:70 積分:30 註冊:2002-05-22 發送簡訊給我 |
又遇到問題了 !_! 我用GUI介面測試checkNTPass是 ok的.
另外,也用Console方式寫了一隻程式,用法如下:
NTCheck UserID Pwd ServerName
在Dos下測試都 ok. 接下來寫成 ASP的元件.
在該ASP元件裡的其他功能都ok,就是checkNTPass總是回應失敗.
function Tinfo.Get_CheckPwd(UserID, Pwd, ServerName: OleVariant): OleVariant; begin If checkNTPass(UserID, Pwd, ServerName) Then Result := 'ok' Else Result := 'fail'; end;原以為是參數不能用 OleVariant .但是如果寫成 Result := UserID Pwd ServerName ; 也都能將三個參數傳送回來. 又想可能是 ASP 的元件沒寫好,就改用 ASPexec.dll 來執行之前的Console程式,卻還是不行. 想請教:我少做了什麼動作嗎? |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |