home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Chip 2002 April
/
Chip_2002-04_cd1.bin
/
zkuste
/
delphi
/
kolekce
/
d56
/
NT.ZIP
/
NTLogon.pas
< prev
next >
Wrap
Pascal/Delphi Source File
|
2002-01-17
|
2KB
|
76 lines
unit NTLogon;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs;
type
TNTLogon = class(TComponent)
private
{ Private declarations }
FUserName:String;
FDomain:String;
FPassword:String;
FLogonType:DWORD;
FLogonProvider:DWORD;
FError:DWORD;
FUserToken:THandle;
protected
{ Protected declarations }
public
{ Public declarations }
published
{ Published declarations }
property UserName:String read FUserName write FUserName;
property DomainName:String read FDomain write FDomain;
property Password:String read FPassword write FPassword;
property LogonType:DWORD read FLogonType write FLogonType;
property LogonProvider:DWORD read FLogonProvider write FLogonProvider;
property ErrorCode:DWORD read FError;
property UserToken:THandle read FUserToken;
function Logon:Boolean;
end;
procedure Register;
implementation
function TNTLogon.Logon:Boolean;
var TmpD:String;
begin
If FDomain='' Then
Begin
If Pos('@',FUserName)>0 Then
Begin
If Not LogonUser(PChar(FUserName),nil,PChar(FPassword),FLogonType,FLogonProvider,FUserToken) Then
Begin
FError:=GetLastError;
Result:=False;
End Else
Begin
FError:=0;
Result:=True;
End;
Exit;
End;
End;
TmpD:='.';
If Not LogonUser(PChar(FUserName),PChar(TmpD),PChar(FPassword),FLogonType,FLogonProvider,FUserToken) Then
Begin
FError:=GetLastError;
Result:=False;
End Else
Begin
FError:=0;
Result:=True;
End;
end;
procedure Register;
begin
RegisterComponents('NT Tools - Additional', [TNTLogon]);
end;
end.