一般,USB Key可以创建目录和文件,创建文件可以设置文件的密级
文件密级有三个:管理员 用户 普通
管理员有密码,用户有密码,普通就是不需要任何密码
通常跟平台绑定登陆时候,可以在USB Key中创建一个文件,保存用户ID,设置这个文件为用户密级,只要访问这个文件,就会提示输入USB Key的用户密码
在登陆平台时候,读取这个文件,如果不存在就不允许进入平台。读取这个文件,就会验证USB Key的用户密码,只有这个Key的合法用户才可以用这个Key登陆了
做登陆时候,一般修改 系统空间\系统运行库\系统初始化 的TINIT.InternalLogon 方法
static function TINIT.InternalLogon(AParam: String): Boolean;
const
MaxLogonFailCount = 3;
LogonErrorMsg01 = '登录失败';
LogonErrorMsg02 = '用户不存在或者密码错误,请注意大小写,密码是区分大小写的。';
LogonErrorMsg03 = '对不起,您已经 %d 次登录失败,将退出系统。';
var
I: Integer;
lAccept: Boolean;
sUser, sPass, lAccountID, lUserID, lMessage: String;
lPerson: Org.TPerson;
lLogonPerson: Org.TPersonMember;
begin
if not FInternalDisableAutoLogon then
begin
if UseAD and LoginUseAD then
begin
Result := True;
Exit;
end;
//这个LoginUseUSBKey可以模仿LoginUseAD方法
if LoginUseUSBKey then
begin
Result := True;
Exit;
end;
if AParam <> '' then
begin
。。。
static function TINIT.LoginUseUSBKey: Boolean;
var
s: String;
person: Org.TPerson;
begin
s := 读取USBKey,获得人员ID;
if s = '' then
Exit;
person := Org.OrgSys.OrgSystem.FindPerson(s);
if person = nil then
Exit;
Result := TSystemCore.Logon(person.ID, person.Password);
end; |