示例#1
0
        /// <summary>
        ///  Wraps the PCSC function
        ///  LONG SCardConnect(
        ///		IN SCARDCONTEXT hContext,
        ///		IN LPCTSTR szReader,
        ///		IN DWORD dwShareMode,
        ///		IN DWORD dwPreferredProtocols,
        ///		OUT LPSCARDHANDLE phCard,
        ///		OUT LPDWORD pdwActiveProtocol
        ///	);
        /// </summary>
        /// <param name="Reader"></param>
        /// <param name="ShareMode"></param>
        /// <param name="PreferredProtocols"></param>
        public override void Connect(string Reader, SHARE ShareMode, PROTOCOL PreferredProtocols)
        {
            EstablishContext(SCOPE.User);

            IntPtr	hCard = Marshal.AllocHGlobal(Marshal.SizeOf(cardHandle));
            IntPtr	pProtocol = Marshal.AllocHGlobal(Marshal.SizeOf(protocol));

            lastError = PCSC.SCardConnect(context,
                Reader,
                (uint) ShareMode,
                (uint) PreferredProtocols,
                hCard,
                pProtocol);

            if (lastError != 0)
            {
                Marshal.FreeHGlobal(hCard);
                Marshal.FreeHGlobal(pProtocol);
                ThrowSmartcardException("SCardConnect", lastError);
            }

            cardHandle = Marshal.ReadIntPtr(hCard);
            protocol = (uint) Marshal.ReadInt32(pProtocol);

            Marshal.FreeHGlobal(hCard);
            Marshal.FreeHGlobal(pProtocol);
        }
示例#2
0
        /// <summary>
        ///  Wraps the PCSC function
        ///  LONG SCardConnect(
        ///		IN SCARDCONTEXT hContext,
        ///		IN LPCTSTR szReader,
        ///		IN DWORD dwShareMode,
        ///		IN DWORD dwPreferredProtocols,
        ///		OUT LPSCARDHANDLE phCard,
        ///		OUT LPDWORD pdwActiveProtocol
        ///	);
        /// </summary>
        /// <param name="Reader"></param>
        /// <param name="ShareMode"></param>
        /// <param name="PreferredProtocols"></param>
        public override void Connect(string Reader, SHARE ShareMode, PROTOCOL PreferredProtocols)
        {
            EstablishContext(SCOPE.User);

            IntPtr hCard     = Marshal.AllocHGlobal(Marshal.SizeOf(m_hCard));
            IntPtr pProtocol = Marshal.AllocHGlobal(Marshal.SizeOf(m_nProtocol));

            m_nLastError = NativeMethods.SCardConnect(m_hContext,
                                                      Reader,
                                                      (uint)ShareMode,
                                                      (uint)PreferredProtocols,
                                                      hCard,
                                                      pProtocol);

            if (m_nLastError != 0)
            {
                string msg = String.Format("SCardConnect error: {0:x} ", m_nLastError);
                //string msg = "SCardConnect error: " + (ErrorCodes)m_nLastError;

                Marshal.FreeHGlobal(hCard);
                Marshal.FreeHGlobal(pProtocol);
                throw new Exception(msg);
            }

            m_hCard     = (uint)Marshal.ReadInt32(hCard);
            m_nProtocol = (uint)Marshal.ReadInt32(pProtocol);

            Marshal.FreeHGlobal(hCard);
            Marshal.FreeHGlobal(pProtocol);
        }
示例#3
0
        /// <summary>
        ///  Wraps the PCSC function
        ///  LONG SCardConnect(
        ///		IN SCARDCONTEXT hContext,
        ///		IN LPCTSTR szReader,
        ///		IN DWORD dwShareMode,
        ///		IN DWORD dwPreferredProtocols,
        ///		OUT LPSCARDHANDLE phCard,
        ///		OUT LPDWORD pdwActiveProtocol
        ///	);
        /// </summary>
        /// <param name="Reader"></param>
        /// <param name="ShareMode"></param>
        /// <param name="PreferredProtocols"></param>
        public override void Connect(string Reader, SHARE ShareMode, PROTOCOL PreferredProtocols)
        {
            EstablishContext(SCOPE.User);

            IntPtr hCard     = Marshal.AllocHGlobal(Marshal.SizeOf(m_hCard));
            IntPtr pProtocol = Marshal.AllocHGlobal(Marshal.SizeOf(m_nProtocol));

            m_nLastError = SCardConnect(m_hContext,
                                        Reader,
                                        (uint)ShareMode,
                                        (uint)PreferredProtocols,
                                        hCard,
                                        pProtocol);

            if (m_nLastError != 0)
            {
                string msg = "SCardConnect error: " + new Win32Exception(m_nLastError).Message;

                Marshal.FreeHGlobal(hCard);
                Marshal.FreeHGlobal(pProtocol);
                throw new Exception(msg);
            }

            m_hCard     = (uint)Marshal.ReadInt32(hCard);
            m_nProtocol = (uint)Marshal.ReadInt32(pProtocol);

            Marshal.FreeHGlobal(hCard);
            Marshal.FreeHGlobal(pProtocol);
        }
        /// <summary>
        ///  Wraps the PCSC function
        ///  LONG SCardConnect(
        ///		IN SCARDCONTEXT hContext,
        ///		IN LPCTSTR szReader,
        ///		IN DWORD dwShareMode,
        ///		IN DWORD dwPreferredProtocols,
        ///		OUT LPSCARDHANDLE phCard,
        ///		OUT LPDWORD pdwActiveProtocol
        ///	);
        /// </summary>
        /// <param name="Reader"></param>
        /// <param name="ShareMode"></param>
        /// <param name="PreferredProtocols"></param>
        public override void Connect(string Reader, SHARE ShareMode, PROTOCOL PreferredProtocols)
        {
            EstablishContext(SCOPE.User);

            IntPtr hCard     = Marshal.AllocHGlobal(Marshal.SizeOf(cardHandle));
            IntPtr pProtocol = Marshal.AllocHGlobal(Marshal.SizeOf(protocol));

            lastError = PCSC.SCardConnect(context,
                                          Reader,
                                          (uint)ShareMode,
                                          (uint)PreferredProtocols,
                                          hCard,
                                          pProtocol);

            if (lastError != 0)
            {
                Marshal.FreeHGlobal(hCard);
                Marshal.FreeHGlobal(pProtocol);
                ThrowSmartcardException("SCardConnect", lastError);
            }

            cardHandle = Marshal.ReadIntPtr(hCard);
            protocol   = (uint)Marshal.ReadInt32(pProtocol);

            Marshal.FreeHGlobal(hCard);
            Marshal.FreeHGlobal(pProtocol);
        }
示例#5
0
 public void Connect(string reader, SHARE shareMode, PROTOCOL preferredProtocols)
 {
     try
     {
         card.Connect(reader, shareMode, preferredProtocols);
     }
     catch (SmartCardException scEx)
     {
         SmartcardFault scFault = new SmartcardFault(scEx);
         throw new FaultException<SmartcardFault>(scFault);
     }
     catch (Exception ex)
     {
         GeneralFault genFault = new GeneralFault(ex);
         throw new FaultException<GeneralFault>(genFault);
     }
 }
示例#6
0
 public void Connect(string reader, SHARE shareMode, PROTOCOL preferredProtocols)
 {
     try
     {
         card.Connect(reader, shareMode, preferredProtocols);
     }
     catch (SmartCardException scEx)
     {
         SmartcardFault scFault = new SmartcardFault(scEx);
         throw new FaultException <SmartcardFault>(scFault);
     }
     catch (Exception ex)
     {
         GeneralFault genFault = new GeneralFault(ex);
         throw new FaultException <GeneralFault>(genFault);
     }
 }
示例#7
0
文件: SCard.cs 项目: StasAlb/HugeLib
        public void Connect(string Reader, SHARE ShareMode, PROTOCOL PreferredProtocols)
        {
            EstablishContext(SCOPE.User);

            IntPtr hCard     = Marshal.AllocHGlobal(Marshal.SizeOf(m_hCard));
            IntPtr pProtocol = Marshal.AllocHGlobal(Marshal.SizeOf(m_nProtocol));


            m_nLastError = SCardConnect(m_hContext,
                                        Reader,
                                        (uint)ShareMode,
                                        (uint)PreferredProtocols,
                                        hCard,
                                        pProtocol);

            if (m_nLastError != 0)
            {
                Marshal.FreeHGlobal(hCard);
                Marshal.FreeHGlobal(pProtocol);
                unchecked
                {
                    switch (m_nLastError)
                    {
                    case ((int)0x80100009):
                        throw new Exception("Reader not found...");

                    case ((int)0x80100069):
                        throw new Exception("No smart card in reader");

                    default:
                        throw new Exception(String.Format("SCardConnect error: 0x{0:X}", m_nLastError));
                    }
                }
            }

            m_hCard     = (uint)Marshal.ReadInt32(hCard);
            m_nProtocol = (uint)Marshal.ReadInt32(pProtocol);

            Marshal.FreeHGlobal(hCard);
            Marshal.FreeHGlobal(pProtocol);
        }
示例#8
0
        public IHttpActionResult Share([FromBody] SHARE share)
        {
            int fromuserID = UserInf.GetUser();

            try
            {
                using (MynoteDBEntities db = new MynoteDBEntities())
                {
                    if (fromuserID == share.ToUserId)
                    {
                        return(BadRequest());
                    }
                    if (db.SHARES.Any(x => x.ToUserId == share.ToUserId && x.FromUserıd == fromuserID && x.NotId == share.NotId))
                    {
                        return(NotFound());
                    }
                    else
                    {
                        share.FromUserıd        = fromuserID;
                        share.Share_CreatedDate = DateTime.Now;
                        share.IsActive          = 1;
                        db.SHARES.Add(share);
                        int feed = db.SaveChanges();
                        if (feed != 0)
                        {
                            return(Ok());
                        }
                        else
                        {
                            return(BadRequest());
                        }
                    }
                }
            }
            catch (Exception e)
            {
                return(BadRequest(e.Message));
            }
        }
示例#9
0
 abstract public void Connect(string Reader, SHARE ShareMode, PROTOCOL PreferredProtocols);
示例#10
0
 /// <summary>
 ///  Wraps the PCSC function
 ///  LONG SCardConnect(
 ///		IN SCARDCONTEXT hContext,
 ///		IN LPCTSTR szReader,
 ///		IN DWORD dwShareMode,
 ///		IN DWORD dwPreferredProtocols,
 ///		OUT LPSCARDHANDLE phCard,
 ///		OUT LPDWORD pdwActiveProtocol
 ///	);
 /// </summary>
 /// <param name="Reader"></param>
 /// <param name="ShareMode"></param>
 /// <param name="PreferredProtocols"></param>
 public override void Connect(string Reader, SHARE ShareMode, PROTOCOL PreferredProtocols)
 {
     // Calls AttachReader to connect to the card
     m_itfCard.AttachByReader(Reader, (SCARD_SHARE_MODES) ShareMode, (SCARD_PROTOCOLS) PreferredProtocols);
 }
示例#11
0
        /// <summary>
        ///  Wraps the PCSC function
        ///  LONG SCardConnect(
        ///		IN SCARDCONTEXT hContext,
        ///		IN LPCTSTR szReader,
        ///		IN DWORD dwShareMode,
        ///		IN DWORD dwPreferredProtocols,
        ///		OUT LPSCARDHANDLE phCard,
        ///		OUT LPDWORD pdwActiveProtocol
        ///	);
        /// </summary>
        /// <param name="Reader"></param>
        /// <param name="ShareMode"></param>
        /// <param name="PreferredProtocols"></param>
        public override void Connect(string Reader, SHARE ShareMode, PROTOCOL PreferredProtocols)
        {
            EstablishContext(SCOPE.User);

            IntPtr	hCard = Marshal.AllocHGlobal(Marshal.SizeOf(m_hCard));
            IntPtr	pProtocol = Marshal.AllocHGlobal(Marshal.SizeOf(m_nProtocol));

            m_nLastError = SCardConnect(m_hContext,
                Reader,
                (uint) ShareMode,
                (uint) PreferredProtocols,
                hCard,
                pProtocol);

            if (m_nLastError != 0)
            {
                string msg = "SCardConnect error: " + m_nLastError;

                Marshal.FreeHGlobal(hCard);
                Marshal.FreeHGlobal(pProtocol);
                throw new Exception(msg);
            }

            m_hCard = Marshal.ReadIntPtr(hCard);
            m_nProtocol = (uint) Marshal.ReadInt32(pProtocol);

            Marshal.FreeHGlobal(hCard);
            Marshal.FreeHGlobal(pProtocol);
        }
示例#12
0
 /// <summary>
 /// Connects to a card. Establishes a card session
 /// </summary>
 /// <param name="Reader">Reader string</param>
 /// <param name="ShareMode">Session share mode</param>
 /// <param name="PreferredProtocols">Session preferred protocol</param>
 void Connect(string reader, SHARE shareMode, PROTOCOL preferredProtocols)
 {
     cardClient.ConnectAsync(reader, (SCardService.SHARE)shareMode, (SCardService.PROTOCOL)preferredProtocols).Wait(TIMEOUT);
 }
示例#13
0
 public static extern IntPtr CeCreateFile(string lpFileName, ACCESS dwDesiredAccess, SHARE dwShareMode, int Res1, ACTION dwCreationDisposition, FILEFLAGATT dwFlagsAndAttributes, int Res2);
 /// <summary>
 /// Connects to a card. Establishes a card session
 /// </summary>
 /// <param name="Reader">Reader string</param>
 /// <param name="ShareMode">Session share mode</param>
 /// <param name="PreferredProtocols">Session preferred protocol</param>
 public void Connect(string reader, SHARE shareMode, PROTOCOL preferredProtocols)
 {
     try
     {
         cardClient.ConnectAsync(reader, (SCardService.SHARE)shareMode, (SCardService.PROTOCOL)preferredProtocols).Wait(TIMEOUT);
     }
     catch (AggregateException ax)
     {
         throw new Exception(ProcessAggregateException(ax));
     }
 }
示例#15
0
 /// <summary>
 ///  Wraps the PCSC function
 ///  LONG SCardConnect(
 ///		IN SCARDCONTEXT hContext,
 ///		IN LPCTSTR szReader,
 ///		IN DWORD dwShareMode,
 ///		IN DWORD dwPreferredProtocols,
 ///		OUT LPSCARDHANDLE phCard,
 ///		OUT LPDWORD pdwActiveProtocol
 ///	);
 /// </summary>
 /// <param name="Reader"></param>
 /// <param name="ShareMode"></param>
 /// <param name="PreferredProtocols"></param>
 public override void Connect(string Reader, SHARE ShareMode, PROTOCOL PreferredProtocols)
 {
     // Calls AttachReader to connect to the card
     m_itfCard.AttachByReader(Reader, (SCARD_SHARE_MODES)ShareMode, (SCARD_PROTOCOLS)PreferredProtocols);
 }
示例#16
0
 /// <summary>
 /// Connects to a card. Establishes a card session
 /// </summary>
 /// <param name="Reader">Reader string</param>
 /// <param name="ShareMode">Session share mode</param>
 /// <param name="PreferredProtocols">Session preferred protocol</param>
 void Connect(string reader, SHARE shareMode, PROTOCOL preferredProtocols)
 {
     cardClient.ConnectAsync(reader, (SCardService.SHARE)shareMode, (SCardService.PROTOCOL)preferredProtocols).Wait(TIMEOUT);
 }