代码之家  ›  专栏  ›  技术社区  ›  Muhammad Touseef

uwp智能卡提取用户信息

  •  0
  • Muhammad Touseef  · 技术社区  · 8 年前

    我正在构建一个UWP应用程序,我的目标很简单。我的电脑与智能卡读卡器相连,因此在运行应用程序后,我希望用户将其智能卡插入智能卡读卡器,然后我希望我的应用程序提取他们的所有信息(即:名字、姓氏、地址和其他类似信息),以便 自动填写表单 这样他们就可以很容易地注册到我的服务中,而不必在每个文本框中填写他们的所有信息。

    到目前为止我所尝试的

    protected async override void OnNavigatedTo(NavigationEventArgs e)
        {
            base.OnNavigatedTo(e);
            string selector = SmartCardReader.GetDeviceSelector();
            DeviceInformationCollection devices =
                await DeviceInformation.FindAllAsync(selector);
            var dialog = new MessageDialog("Number of devices : " + devices.Count.ToString());
            await dialog.ShowAsync();
            var device = devices[0];
            SmartCardReader reader =
                await SmartCardReader.FromIdAsync(device.Id);
            IReadOnlyList<SmartCard> cards =
                await reader.FindAllCardsAsync();
            var dialog2 = new MessageDialog("Number of cards in this device : " + cards.Count.ToString());
            await dialog2.ShowAsync();
    
            var card = cards[0];
            using (var conn = await card.ConnectAsync())
            {
                // after establishing connection, how can I extract the user information out of their smart cards?   
                var answer=await card.GetAnswerToResetAsync();
                // the above line is supposed to give a buffer can that be converted to string to extract out the requied data?
            }
            reader.CardAdded += Reader_CardAdded;
        }
    
        private void Reader_CardAdded(SmartCardReader sender, CardAddedEventArgs args)
        {
            //args has no method to extract data as well
        }
    
    1 回复  |  直到 8 年前
        1
  •  0
  •   Vagner Gon    8 年前

    在UWP中处理智能卡并非易事。

    WinRT库只有使用字节与智能卡通信的读写方法。智能卡没有“全局高级别”读写操作。

    例如,如果要读取Mifare Classic智能卡,则需要执行多个操作,如身份验证、读取某些块和扇区以获取/设置数据。所有这些步骤都与智能卡规格有关。

    您需要找到哪个标准的“UAE id卡”使用读写操作,并使用读写操作实现所有低级操作(或找到为您制作的库)。

    Here 是智能卡API的一个示例,用于与支持UWP的Mifare卡进行通信。请注意,有几个步骤可以简单地读取和写入数据。

    推荐文章