Chilkat HOME .NET Core C# Android™ AutoIt C C# C++ Chilkat2-Python CkPython Classic ASP DataFlex Delphi ActiveX Delphi DLL Go Java Lianja Mono C# Node.js Objective-C PHP ActiveX PHP Extension Perl PowerBuilder PowerShell PureBasic Ruby SQL Server Swift 2 Swift 3,4,5... Tcl Unicode C Unicode C++ VB.NET VBScript Visual Basic 6.0 Visual FoxPro Xojo Plugin
(Classic ASP) PC/SC Find Inserted Smart CardsSee more SCard ExamplesGet detailed information about each reader including whether or not a smart card is currently inserted in the reader. (Also includes USB tokens.) Note: This functionality was introduced in Chilkat v9.5.0.87.
<html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> </head> <body> <% ' This example requires the Chilkat API to have been previously unlocked. ' See Global Unlock Sample for sample code. ' For versions of Chilkat < 10.0.0, use CreateObject("Chilkat_9_5_0.SCard") set scard = Server.CreateObject("Chilkat.SCard") ' First establish a context to the PC/SC Resource Manager success = scard.EstablishContext("user") If (success = 0) Then Response.Write "<pre>" & Server.HTMLEncode( scard.LastErrorText) & "</pre>" Response.End End If ' Get JSON containing information about the smartcards currently inserted into readers. ' This also includes information about USB security tokens. ' For versions of Chilkat < 10.0.0, use CreateObject("Chilkat_9_5_0.JsonObject") set json = Server.CreateObject("Chilkat.JsonObject") success = scard.FindSmartcards(json) If (success = 0) Then Response.Write "<pre>" & Server.HTMLEncode( scard.LastErrorText) & "</pre>" Response.End End If json.EmitCompact = 0 Response.Write "<pre>" & Server.HTMLEncode( json.Emit()) & "</pre>" ' Here is sample output: ' See below for sample code to parse the JSON. ' You can see which readers have a card inserted by the "state". ' If the state contains "present", then a card is inserted into the reader. ' (USB tokens will typically always have a state containing "present") ' Also, the ATR of the card inserted into the reader is indicated by "atr". ' { ' "reader": [ ' { ' "name": "Alcor Micro USB Smart Card Reader 0", ' "state": "present,inuse", ' "vendorName": "Alcor Micro", ' "systemName": "Alcor Micro USB Smart Card Reader 0", ' "card": { ' "atr": "3B7F96000080318065B0855956FB120FFE829000", ' "windows": { ' "miniDriver": "AxaltoCM.dll", ' "cryptoProvider": "Microsoft Base Smart Card Crypto Provider", ' "keyStorageProvider": "Microsoft Smart Card Key Storage Provider" ' } ' } ' }, ' { ' "name": "FS USB Token 0", ' "state": "present,inuse", ' "vendorName": "FS", ' "serialNumber": "3F", ' "systemName": "FS USB Token 0", ' "card": { ' "atr": "3B9F958131FE9F006646530534002571DF000000000012", ' "windows": { ' "miniDriver": "eps2003csp11", ' "cryptoProvider": "Microsoft Base Smart Card Crypto Provider", ' "keyStorageProvider": "Microsoft Smart Card Key Storage Provider" ' } ' } ' }, ' { ' "name": "FT Java Token 0", ' "state": "present", ' "vendorName": "FT", ' "serialNumber": "3F", ' "systemName": "FT Java Token 0", ' "card": { ' "atr": "3BFC180000813180459067464A00642D70C172FEE0FE", ' "windows": { ' "miniDriver": "tagliov70px.dll", ' "cryptoProvider": "Microsoft Base Smart Card Crypto Provider", ' "keyStorageProvider": "Microsoft Smart Card Key Storage Provider" ' } ' } ' }, ' { ' "name": "SCM Microsystems Inc. SCR33x USB Smart Card Reader 0", ' "state": "present", ' "vendorName": "SCM Microsystems Inc.", ' "serialNumber": "333130303330", ' "systemName": "SCM Microsystems Inc. SCR33x USB Smart Card Reader 0", ' "card": { ' "atr": "3BFC180000813180459067464A00641606F2727E00E0", ' "windows": { ' "miniDriver": "tagliov70px.dll", ' "cryptoProvider": "Microsoft Base Smart Card Crypto Provider", ' "keyStorageProvider": "Microsoft Smart Card Key Storage Provider" ' } ' } ' }, ' { ' "name": "Yubico YubiKey OTP+FIDO+CCID 0", ' "state": "present", ' "vendorName": "Yubico", ' "serialNumber": "3F", ' "systemName": "Yubico YubiKey OTP+FIDO+CCID 0", ' "card": { ' "atr": "3BFD1300008131FE158073C021C057597562694B657940", ' "windows": { ' "miniDriver": "msclmd.dll", ' "cryptoProvider": "Microsoft Base Smart Card Crypto Provider", ' "keyStorageProvider": "Microsoft Smart Card Key Storage Provider" ' } ' } ' } ' ] ' } ' Use this online tool to generate parsing code from sample JSON: ' Generate Parsing Code from JSON i = 0 count_i = json.SizeOfArray("reader") Do While i < count_i json.I = i name = json.StringOf("reader[i].name") state = json.StringOf("reader[i].state") vendorName = json.StringOf("reader[i].vendorName") systemName = json.StringOf("reader[i].systemName") cardAtr = json.StringOf("reader[i].card.atr") cardWindowsMiniDriver = json.StringOf("reader[i].card.windows.miniDriver") cardWindowsCryptoProvider = json.StringOf("reader[i].card.windows.cryptoProvider") cardWindowsKeyStorageProvider = json.StringOf("reader[i].card.windows.keyStorageProvider") serialNumber = json.StringOf("reader[i].serialNumber") i = i + 1 Loop ' Applications should always release the context when finished. success = scard.ReleaseContext() If (success = 0) Then Response.Write "<pre>" & Server.HTMLEncode( scard.LastErrorText) & "</pre>" End If %> </body> </html> |
© 2000-2024 Chilkat Software, Inc. All Rights Reserved.