c – 使用Indy组件验证智能卡凭据
Indy组件是否具有验证智能卡(CAC)凭据的任何功能?我假设它必须与InitializeSecurityContext一起使用.
我在C Builder Seattle中使用它,但即使是Delphi的例子也会受到赞赏. 这是我到目前为止所知道的: >打开系统证书存储区(CertOpenSystemStore)并让它 在那之后,我不确定应该将什么发送到服务器以及期待什么作为回报.此时系统应该询问用户PIN码? 谢谢 解决方法
当您获得SEC_I_CONTINUE_NEEDED时,您应该将输出令牌数据传输到服务器,等待响应令牌,然后将其传递回InitializeSecurityContext().现在,您实际上如何来回传输数据取决于您用于与服务器通信的特定协议.
例如,在TIdHTTP中,Indy有一个TIdSSPINTLMAuthentication类,用于使用您使用的相同API处理NTLM身份验证.它初始化NTML安全包,然后使用InitializeSecurityContext()来检索包含NTLM令牌数据的字节缓冲区,然后将base64编码放入HTTP Authorization:NTML …请求标头中.当响应返回时,如果它具有提供响应令牌数据的HTTP WWW-Authenticate:NTLM …头,则对数据进行base64解码,并将得到的字节反馈到InitializeSecurityContext()中. 因此,您需要确定用于与服务器通信的通信协议,以及该协议期望您来回传输令牌字节的方式.这超出了Indy的范围.它为您提供了发送和接收字节的方法,但您必须根据需要提供和读取它们. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |