读卡器程序在本地系统中工作但不在IIS服务器上工作

时间:2015-08-27 08:10:31

标签: asp.net-mvc smartcard-reader

我使用ASP.net MVC5开发了一个读卡器应用程序。使用的读卡器是HID OMNIKEY 3121.当插入卡时,该应用程序将读取芯片中编码的名称,性别,dob等。这在我的本地系统中工作正常,我可以在视图中显示它。 然后我将其发布到服务器中的IIS。然后我从我的本地(客户端)系统调用MVC网站。读卡器连接到本地系统,但是当点击读取数据时,它会给出一个空白页面。

任何配置问题?请指导我

被修改 控制器

public class cardController : Controller
    {

        public ActionResult Index()
        {
            try
            {

             ReaderManagement readerMgr = new ReaderManagement();
             readerMgr.EstablishContext();//extablishing card connection API


                try
                {
              readerMgr.DiscoverReaders(); //discover card reader connected
                }
                catch(Exception ex)
                {
                    return RedirectToAction("Nocard", "card");
                }
                PCSCReader[] readers = readerMgr.Readers;
                PCSCReader selectedReader =             readerMgr.SelectReaderByName(readers[0].ReaderName);
                //Other select methods may be called...
                selectedReader.IsConnected();
      IDCardWrapper.LoadConfiguration();


                bool IsCardConnected = selectedReader.IsConnected();
                bool isContactless;
     if (IsCardConnected) isContactless =     selectedReader.IsContactless(); 
                if (!IsCardConnected)
                {
                    readerMgr.SelectReaderByName(readers[0].ReaderName);

                    try
                    {
                        selectedReader.Connect(readerMgr.Context);
                    }
                    catch(Exception ex)
                    {
                       return RedirectToAction("Nocard", "card");
                    }

                }


                CardInfo cardInfo = selectedReader.GetCardInfo();

                try
                {

 PublicDataFacade publicDataFacade = selectedReader.GetPublicDataFacade();
 CardHolderPublicData publicData = publicDataFacade.ReadPublicData(true, true, true, true, false);
ViewBag.sex = PublicDataUtils.GetSex(Utils.ByteArrayToUTF8String(publicData.Sex));
ViewBag.maritalstatus = PublicDataUtils.GetMaritalStatus(Utils.ByteArrayToHex(publicData.MaritalStatus, ""));
                    ViewBag.sponsortype = PublicDataUtils.GetSponsorType(Utils.ByteArrayToHex(publicData.SponsorType, ""));

                    ViewBag.dob = Utils.ByteArrayToStringDate(publicData.DateOfBirth);

                    ViewBag.fullname = PublicDataUtils.RemoveCommas(Utils.ByteArrayToUTF8String(publicData.FullName));
                    ViewBag.arabicname = PublicDataUtils.RemoveCommas(Utils.ByteArrayToUTF8String(publicData.ArabicFullName));


                }


                readerMgr.CloseContext();
            }
            catch (Exception ex) //(MiddlewareException ex)
            {

            }

            return View();
        }

查看

只显示分配的视包数据。

1 个答案:

答案 0 :(得分:0)

您无法从网站访问本地设备(如智能卡读卡器)。

您必须在客户端计算机上安装桌面应用程序(如@Ashley和@Basic所述):例如Chrome应用程序或Windows应用程序。

相关问题