2015-08-27 25 views
1

我開發了一個使用ASP.net MVC5的讀卡器應用程序。讀卡器使用的是HID OMNIKEY 3121.當插入卡時,此應用程序將讀取芯片中編碼的名稱,性別,dob等。這在我的本地系統中工作正常,我可以在視圖中顯示它。 然後我發佈到服務器上的IIS。然後我從本地(客戶端)系統調用MVC網站。讀卡器連接到本地系統,但點擊讀取數據時,它將顯示一個空白頁面。讀卡器程序在本地系統中運行但不能從IIS服務器運行

任何配置問題?請指引我

編輯 控制器

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(); 
     } 

查看

只需出示分配viewbag數據。

+0

你需要包含一些代碼,或許它試圖讀取服務器上讀取的卡而不是客戶端。沒有代碼,沒有線索! –

+0

@AshleyMedway問題edited..ya可能是它試圖讀服務器上的卡,而不是客戶端..如何使它讀取客戶端..在那裏stu .. – Dravid

+1

謝謝Dravid,我不是這個技術的專家,但除非它有某種與客戶端連接的插座,它看起來並不像它。正如我懷疑的那樣,您的代碼正試圖從服務器上的讀卡器讀取詳細信息。至少如果有一些與客戶端的連接,我希望你在請求上下文中做一些事情。 –

回答

0

您不能從本地網站訪問本地設備(如智能卡讀卡器)。

您必須在客戶端計算機上安裝桌面應用程序(如@Ashley和@Basic所述):Chrome應用程序或Windows應用程序。

相關問題