无法将SmartCard与winscard.dll连接起来?

时间:2018-08-31 18:24:40

标签: c# asp.net webforms smartcard smartcard-reader

我需要阅读文档身份智能卡。

我在ASP.NET中通过执行方法使用winscard.dll:

postId = $(this).closest("[data-postid]").data().postid;

此函数返回以下错误:

SCardConnect() 

不支持此代码。

最后请参阅支持的错误列表。

发送之前的方法ConnectCard和参数值:

retCode = -2146434970

错误代码:

hContext = -855572480
readername = "ACS ACR1281 1S Dual Reader ICC 0"
Card.SCARD_SHARE_SHARED = 2
Card.SCARD_PROTOCOL_T0 = 1
Card.SCARD_PROTOCOL_T1 = 2
hCard = 0
Protocol = 0



public bool connectCard()
    {
        connActive = true;
        retCode = Card.SCardConnect(hContext, readername, Card.SCARD_SHARE_SHARED,
                  Card.SCARD_PROTOCOL_T0 | Card.SCARD_PROTOCOL_T1, ref hCard, ref Protocol);

        if (retCode != Card.SCARD_S_SUCCESS)
        {

            MessageBox.Show(Card.GetScardErrMsg(retCode), "Card not available", MessageBoxButtons.OK, MessageBoxIcon.Error);
            connActive = false;
            return false;
        }
        return true;
    }

1 个答案:

答案 0 :(得分:1)

我建议将错误代码整数(偶然是C#)转换为无符号数字。这些被更广泛地使用并且可以更好地搜索。

PCSC-lite文档指出了代码0x80100066表示卡无响应。这似乎适合您的问题,因此建议先尝试使用另一张卡,然后再交换读卡器。

已更新:之后我指出,您的错误代码列表对于某些代码似乎有所不同,因为它为无响应卡列出了不同的编号,因此分析差异也可能有所帮助。