c# – 使用.Net技术开发智能卡读卡器

c# – 使用.Net技术开发智能卡读卡器,第1张

概述有谁知道如何监控智能卡的存在并读取卡的UID值? 是的我在网上尝试过很多例子 A Smart Card Framework for .NET pcsc-sharp Monitoring a Smartcard Reader 但不知道该怎么做.我可以检测卡的存在并且可以单独获取UID,但不知道如何在我的应用程序中组合它们:(. 帮我 我明白了.想与任何有兴趣的人分享. 我使用winscard.dll 有谁知道如何监控智能卡的存在并读取卡的UID值?

是的我在网上尝试过很多例子

A Smart Card Framework for .NET

pcsc-sharp

Monitoring a Smartcard Reader

但不知道该怎么做.我可以检测卡的存在并且可以单独获取UID,但不知道如何在我的应用程序中组合它们:(.

帮我

解决方法 我明白了.想与任何有兴趣的人分享.

我使用winscard.dll函数来访问卡数据并与PC通信.

请注意,我使用mifare 1K卡作为NFC标签和读卡器ACR 122u.

private string getcardUID()//only for mifare 1k cards    {        string cardUID = "";        byte[] receivedUID = new byte[256];        Card.SCARD_IO_REQUEST request = new Card.SCARD_IO_REQUEST();        request.DWProtocol = Card.SCARD_PROTOCol_T1;        request.cbPciLength = System.Runtime.InteropServices.Marshal.SizeOf(typeof(Card.SCARD_IO_REQUEST));        byte[] sendBytes = new byte[] { 0xFF,0xCA,0x00,0x00 }; //get UID command      for mifare cards        int outBytes = receivedUID.Length;        int status = Card.SCardTransmit(hCard,ref request,ref sendBytes[0],sendBytes.Length,ref receivedUID[0],ref outBytes);        if (status != Card.SCARD_S_SUCCESS)        {            cardUID = "Error";        }        else        {            cardUID = BitConverter.ToString(receivedUID.Take(4).ToArray()).Replace("-",string.Empty).Tolower();        }        return cardUID;    }

对于任何有兴趣的人,我已经写了一步一步的指导来实现这一点.

Simple NFC reading system for windows

请享用!!!

总结

以上是内存溢出为你收集整理的c# – 使用.Net技术开发智能卡读卡器全部内容,希望文章能够帮你解决c# – 使用.Net技术开发智能卡读卡器所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/langs/1262750.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-08
下一篇 2022-06-08

发表评论

登录后才能评论

评论列表(0条)

保存