private void OnCardInserted(object sender, CardStatusEventArgs e) { Debug.WriteLine("OnCardInserted"); Trinity.Common.Monitor.SCardMonitor sCardMonitor = Trinity.Common.Monitor.SCardMonitor.Instance; string cardUID = sCardMonitor.GetCardUID(); Debug.WriteLine($"Card UID: {cardUID}"); SmartCardLoginProcess(cardUID); }
public void Start() { // redirect to Authentication/SmartCard _web.LoadPageHtml("Authentication/SmartCard.html"); _web.RunScript("$('.status-text').css('color','#000').text('Please place your smart card on the reader.');"); // StartCardMonitor Trinity.Common.Monitor.SCardMonitor sCardMonitor = Trinity.Common.Monitor.SCardMonitor.Instance; sCardMonitor.StartCardMonitor(OnCardInitialized, OnCardInserted, OnCardRemoved); }
private void OnCardInitialized(object sender, CardStatusEventArgs e) { Debug.WriteLine("onCardInitialized"); Trinity.Common.Monitor.SCardMonitor sCardMonitor = Trinity.Common.Monitor.SCardMonitor.Instance; string cardUID = sCardMonitor.GetCardUID(); if (string.IsNullOrEmpty(cardUID)) { return; } Debug.WriteLine($"Card UID: {cardUID}"); SmartCardLoginProcess(cardUID); }
private void SmartCardLoginProcess(string cardUID) { Debug.WriteLine($"Card UID: {cardUID}"); // get local user info DAL_User dAL_User = new DAL_User(); var user = dAL_User.GetUserBySmartCardId(cardUID, true); // if local user is null, get user from centralized, and sync db if (user == null) { user = dAL_User.GetUserBySmartCardId(cardUID, false); if (user != null && user.Role != EnumUserRoles.DutyOfficer) { user = null; } } if (user != null) { // // SmartCard is authenticated // // Create a session object to store UserLogin information Session session = Session.Instance; session.IsSmartCardAuthenticated = true; session[CommonConstants.USER_LOGIN] = user; _web.RunScript("$('.status-text').css('color','#000').text('Your smart card is authenticated.');"); // Stop SCardMonitor Trinity.Common.Monitor.SCardMonitor sCardMonitor = Trinity.Common.Monitor.SCardMonitor.Instance; sCardMonitor.Stop(); // raise succeeded event RaiseSmartCardSucceededEvent(); } else { // raise failed event RaiseSmartCardFailedEvent(new SmartCardEventArgs("Unable to read your smart card. Please report to the Duty Officer")); } }