/// <summary>
        /// Establishes connection between given reader and a smart card and returns object implementing IReader interface
        /// capable of interaction with a card, throws an exception if no card available.
        /// </summary>
        /// <param name="readerName">Reader name seen by smart card resource manager.</param>
        /// <returns></returns>
        private static ISmartCardReader Connect(string readerName)
        {
            var reader = new SmartCardReader(readerName);

            ReaderState readerState = ContextHandler.Instance.GetReaderState(reader.PcscReaderName, ReaderStates.Unaware);

            if (readerState.AtrLength > 0)
            {
                reader.Connect(ReaderSharingMode.Shared, Protocol.Any);
                return(reader);
            }
            throw new Exception("No Smart Card Available in contact slot.");
        }
Esempio n. 2
0
        private static ISmartCardReader Connect(string readerName)
        {
            var reader = new SmartCardReader(readerName);

            var readerState = ContextHandler.Instance.GetReaderState(reader.PcscReaderName, ReaderStates.Unaware);

            if (readerState.AtrLength > 0)
            {
                reader.Connect(ReaderSharingMode.Shared, Protocol.Any);
            }
            else
            {
                reader.ConnectDirect();
            }

            return(reader);
        }