关于GINA和USBKEY的问题请教。

johnic 2002-04-02 09:44:36
加精
我要编写一个gina,替换win2000用户认证为使用usbkey来进行认证。
现在问题有两个:
1。如何监控USB接口上面的KEY是否存在?
2。如何才能将KEY的插拔作为GINA的SAS?
...全文
108 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
zygapi 2002-04-02
  • 打赏
  • 举报
回复
用WlxSasNotify()函数,定义SAS事件.
y_x_j_0 2002-04-02
  • 打赏
  • 举报
回复
通过轮询的方式得到(最好使用定时器)当前Key的状态,如果状态不对则发一个自定义的SAS,然后再在WlxLoggedOnSAS 函数中处理你对此SAS地反映,这样做相对简单!祝你好运!
johnic 2002-04-02
  • 打赏
  • 举报
回复
BOOL WINAPI WlxInitialize (
LPWSTR lpWinsta,
HANDLE hWlx,
PVOID pvReserved,
PVOID pWinlogonFunctions,
PVOID * pWlxContext)
{
PGINA_CONTEXT pgContext;

......

// Notify winlogon that we will use the default SAS.
pgContext->pWlxFuncs->WlxUseCtrlAltDel(hWlx);

return TRUE;
}

还一点问题。
像上面这句pgContext->pWlxFuncs->WlxUseCtrlAltDel(hWlx);
我应该怎么定义为KEY的动作?
kingzai 2002-04-02
  • 打赏
  • 举报
回复
LRESULT CXXXDlg::OnCardSas(WPARAM wParam, LPARAM lParam)
{
if (wParam == WLX_SAS_TYPE_CARDINSERTION)
{
处理GINA的SAS
}
else
...
}
其中WLX_SAS_TYPE_CARDINSERTION为自己定义的值,可以由以上的函数GetCardStatus得到。
具体来做可能要封装成好几层,最低层,驱动层,应用程序层。你可以看看微软最新的SDK中的 SMART CARD
johnic 2002-04-02
  • 打赏
  • 举报
回复
楼上的。

2.仿照上面写一个消息处理,处理param就可以了

能不能说的详细一点?
因为关于GINA的SAS我还不太明白。
谢谢
kingzai 2002-04-02
  • 打赏
  • 举报
回复
1.直接用硬件提供的API写一个函数就可以了
比如我用的是acsr20读卡器
BOOL CCard::GetCardStatus()
{
AC_INFO ACInfo;
m_nRetCode = AC_GetInfo(m_nDeviceID, &ACInfo);
if (m_nRetCode < 0)
return FALSE;

return ACInfo.CStat;
}
2.仿照上面写一个消息处理,处理param就可以了
johnic 2002-04-02
  • 打赏
  • 举报
回复
没有人回答哦?
johnic 2002-04-02
  • 打赏
  • 举报
回复
up

16,551

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Creator Browser
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

试试用AI创作助手写篇文章吧