当机器没有锁定时拔下usbKEY 后 则gina.dll锁定计算机,此时插入usbKEY 则弹出要求输入usbKEY 密码的对话框,输入密码正常回到系统!当我 按下 ALT+CTRL+DEL 三键后 按下[锁定计算机]后 再拔下sKEY 后 出现{usbKEY 不在线或设备不存在} 的信息。
此时再插入usbKEY 出现 按下 ALT+CTRL+DEL 三键后的界面 单击[取消]按钮 则可以直接进入系统!但是机器后台 还留下一要求输入usbKEY 密码的对话框!相关程序如下:
//
int WINAPI WlxWkstaLockedSAS(PVOID pWlxContext, DWORD dwSasType )
{
int Result=WLX_SAS_ACTION_UNLOCK_WKSTA;
LPWSTR lpszOutInfo;
int ret=0; switch(dwSasType)//SAS类型
{
case WLX_SAS_TYPE_CTRL_ALT_DEL://按三键出现的安全序列
break;
case WLX_SAS_TYPE_SC_INSERT1://Key插入
break;
case WLX_SAS_TYPE_SC_REMOVE1://拔出
//Result= WLX_SAS_ACTION_LOCK_WKSTA;
break;
default:
Result=WLX_SAS_ACTION_NONE;
break;
} //ret=ResetsKey();//潘 20050301 for(;;){
if(!ReadsKeySM(&lpszOutInfo))//判断此时插入的key是否为登录时的sKey
{
if(pWlxFuncs->WlxMessageBox(hGlobalWlx,NULL,lpszOutInfo,TEXT("阿潘SecureLogon Plus"),MB_RETRYCANCEL|MB_ICONSTOP)==IDCANCEL)
{
return WLX_SAS_ACTION_FORCE_LOGOFF;//注销
}
else{
continue;
}
}
return Result;
}
}int WINAPI WlxLoggedOnSAS(PVOID pWlxContext, DWORD dwSasType,PVOID pReserved)
{
int result;
LPWSTR lpszOutInfo;
if(LogonUserInfo.PSWChangeFlag==1) //是否更新密码标志 -1 初始0 否 1 是 2 更改完 )
{
LogonUserInfo.PSWChangeFlag=2;
AutoRefreshPassWord(&lpszOutInfo);
FreeChainedList(head);
}
if(dwSasType==WLX_SAS_TYPE_SC_REMOVE1)
{
return WLX_SAS_ACTION_LOCK_WKSTA;
}
else
{
result = pWlxFuncs->WlxDialogBoxParam(hGlobalWlx,hDllInstance,(LPTSTR) MAKEINTRESOURCE(IDD_OPTIONS_DIALOG),
NULL,OptionsDlgProc,(LPARAM) pWlxContext );
return(result);
}
}
此时再插入usbKEY 出现 按下 ALT+CTRL+DEL 三键后的界面 单击[取消]按钮 则可以直接进入系统!但是机器后台 还留下一要求输入usbKEY 密码的对话框!相关程序如下:
//
int WINAPI WlxWkstaLockedSAS(PVOID pWlxContext, DWORD dwSasType )
{
int Result=WLX_SAS_ACTION_UNLOCK_WKSTA;
LPWSTR lpszOutInfo;
int ret=0; switch(dwSasType)//SAS类型
{
case WLX_SAS_TYPE_CTRL_ALT_DEL://按三键出现的安全序列
break;
case WLX_SAS_TYPE_SC_INSERT1://Key插入
break;
case WLX_SAS_TYPE_SC_REMOVE1://拔出
//Result= WLX_SAS_ACTION_LOCK_WKSTA;
break;
default:
Result=WLX_SAS_ACTION_NONE;
break;
} //ret=ResetsKey();//潘 20050301 for(;;){
if(!ReadsKeySM(&lpszOutInfo))//判断此时插入的key是否为登录时的sKey
{
if(pWlxFuncs->WlxMessageBox(hGlobalWlx,NULL,lpszOutInfo,TEXT("阿潘SecureLogon Plus"),MB_RETRYCANCEL|MB_ICONSTOP)==IDCANCEL)
{
return WLX_SAS_ACTION_FORCE_LOGOFF;//注销
}
else{
continue;
}
}
return Result;
}
}int WINAPI WlxLoggedOnSAS(PVOID pWlxContext, DWORD dwSasType,PVOID pReserved)
{
int result;
LPWSTR lpszOutInfo;
if(LogonUserInfo.PSWChangeFlag==1) //是否更新密码标志 -1 初始0 否 1 是 2 更改完 )
{
LogonUserInfo.PSWChangeFlag=2;
AutoRefreshPassWord(&lpszOutInfo);
FreeChainedList(head);
}
if(dwSasType==WLX_SAS_TYPE_SC_REMOVE1)
{
return WLX_SAS_ACTION_LOCK_WKSTA;
}
else
{
result = pWlxFuncs->WlxDialogBoxParam(hGlobalWlx,hDllInstance,(LPTSTR) MAKEINTRESOURCE(IDD_OPTIONS_DIALOG),
NULL,OptionsDlgProc,(LPARAM) pWlxContext );
return(result);
}
}
我觉得你没有把拔插转换成SAS消息,那个gina不可能工作啊!