Bug fix : 6x try / catch to resolve crashes caused by GemCard, etc., ver. 3.1.1805
This commit is contained in:
parent
44fc7b92fd
commit
335fce3e39
@ -199,7 +199,8 @@ namespace GemCard
|
||||
{
|
||||
Disconnect(DISCONNECT.Unpower);
|
||||
|
||||
ReleaseContext();
|
||||
try { ReleaseContext(); }
|
||||
catch { }
|
||||
}
|
||||
|
||||
#region ICard Members
|
||||
@ -214,6 +215,8 @@ namespace GemCard
|
||||
/// </summary>
|
||||
/// <returns>A string array of the readers</returns>
|
||||
public override string[] ListReaders()
|
||||
{
|
||||
try
|
||||
{
|
||||
EstablishContext(SCOPE.User);
|
||||
|
||||
@ -276,6 +279,11 @@ namespace GemCard
|
||||
|
||||
return sListReaders;
|
||||
}
|
||||
catch
|
||||
{
|
||||
return new string[0];
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Wraps the PCSC function
|
||||
|
||||
@ -4,6 +4,7 @@
|
||||
using System;
|
||||
using System.Drawing;
|
||||
using System.Windows.Forms;
|
||||
using log4net;
|
||||
using Common;
|
||||
using GemCard;
|
||||
using SharedDatabase.Entities;
|
||||
@ -17,6 +18,8 @@ namespace SharedDatabase.Forms
|
||||
/// </summary>
|
||||
public partial class LoginDlg : Form
|
||||
{
|
||||
private static readonly ILog log = LogManager.GetLogger(typeof(LoginDlg));
|
||||
|
||||
/// Public readonly
|
||||
public string UserName { get { return user; } }
|
||||
|
||||
@ -111,10 +114,16 @@ namespace SharedDatabase.Forms
|
||||
string[] cardReaders = card.ListReaders();
|
||||
if (cardReaders != null)
|
||||
{
|
||||
foreach (var crd in cardReaders)
|
||||
{
|
||||
log.WarnFormat("SMART card reader found: {0}", crd);
|
||||
}
|
||||
|
||||
foreach (var crd in cardReaders)
|
||||
{
|
||||
if (crd.Contains("NFC"))
|
||||
{
|
||||
log.ErrorFormat("SMART card reader selected: {0}", crd);
|
||||
smartCardReader = crd; /// NFC smart card reader detected
|
||||
break;
|
||||
}
|
||||
|
||||
@ -29,5 +29,5 @@ using System.Runtime.InteropServices;
|
||||
// Build Number
|
||||
// Revision
|
||||
//
|
||||
[assembly: AssemblyVersion("3.1.1801.0")]
|
||||
[assembly: AssemblyFileVersion("3.1.1801.0")]
|
||||
[assembly: AssemblyVersion("3.1.1805.0")]
|
||||
[assembly: AssemblyFileVersion("3.1.1805.0")]
|
||||
|
||||
@ -4,6 +4,7 @@
|
||||
using System;
|
||||
using System.Drawing;
|
||||
using System.Windows.Forms;
|
||||
using log4net;
|
||||
using Common;
|
||||
using GemCard;
|
||||
using TBF.Resources;
|
||||
@ -17,6 +18,8 @@ namespace TBF.UI.Shared
|
||||
/// </summary>
|
||||
public partial class LoginDlgWithBenchSelection : Form
|
||||
{
|
||||
private static readonly ILog log = LogManager.GetLogger(typeof(LoginDlgWithBenchSelection));
|
||||
|
||||
public const string UseTheTagPassword = "UseTheTag0293578";
|
||||
|
||||
/// Private fields
|
||||
@ -108,10 +111,16 @@ namespace TBF.UI.Shared
|
||||
string[] cardReaders = card.ListReaders();
|
||||
if (cardReaders != null)
|
||||
{
|
||||
foreach (var crd in cardReaders)
|
||||
{
|
||||
log.WarnFormat("SMART card reader found: {0}", crd);
|
||||
}
|
||||
|
||||
foreach (var crd in cardReaders)
|
||||
{
|
||||
if (crd.Contains("NFC"))
|
||||
{
|
||||
log.ErrorFormat("SMART card reader selected: {0}", crd);
|
||||
smartCardReader = crd; /// NFC smart card reader detected
|
||||
break;
|
||||
}
|
||||
@ -240,15 +249,23 @@ namespace TBF.UI.Shared
|
||||
|
||||
|
||||
void OnCardInserted(object sender, CardInsertedEventArgs args)
|
||||
{
|
||||
string tag = string.Empty;
|
||||
try
|
||||
{
|
||||
BackColor = Color.Green;
|
||||
card.Connect(smartCardReader, SHARE.Shared, PROTOCOL.T0orT1);
|
||||
|
||||
/// Read the serial number of the card
|
||||
APDUResponse response = card.Transmit(new APDUCommand(0xFF, 0xCA, 0x00, 0x00, null, 7));
|
||||
string tag = response.ToString();
|
||||
tag = response.ToString();
|
||||
|
||||
card.Disconnect(DISCONNECT.Leave);
|
||||
}
|
||||
catch
|
||||
{
|
||||
tag = string.Empty;
|
||||
}
|
||||
|
||||
if (testBenchComboBox.SelectedItem != null)
|
||||
{
|
||||
@ -281,7 +298,8 @@ namespace TBF.UI.Shared
|
||||
{
|
||||
if (!string.IsNullOrEmpty(smartCardReader))
|
||||
{
|
||||
card.StopCardEvents();
|
||||
try { card.StopCardEvents(); }
|
||||
catch { }
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -306,6 +306,9 @@ namespace Users.Forms
|
||||
|
||||
|
||||
void OnCardInserted(object sender, CardInsertedEventArgs args)
|
||||
{
|
||||
string tag = string.Empty;
|
||||
try
|
||||
{
|
||||
BackColor = Color.Green;
|
||||
card.Connect(smartCardReader, SHARE.Shared, PROTOCOL.T0orT1);
|
||||
@ -316,6 +319,11 @@ namespace Users.Forms
|
||||
|
||||
card.Disconnect(DISCONNECT.Leave);
|
||||
}
|
||||
catch
|
||||
{
|
||||
txtTag.Text = string.Empty;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
void OnCardRemoved(object sender, CardRemovedEventArgs args)
|
||||
@ -327,7 +335,8 @@ namespace Users.Forms
|
||||
{
|
||||
if (!string.IsNullOrEmpty(smartCardReader))
|
||||
{
|
||||
card.StopCardEvents();
|
||||
try { card.StopCardEvents(); }
|
||||
catch { }
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -277,15 +277,24 @@ namespace Users.Forms
|
||||
|
||||
|
||||
void OnCardInserted(object sender, CardInsertedEventArgs args)
|
||||
{
|
||||
string tag = string.Empty;
|
||||
|
||||
try
|
||||
{
|
||||
BackColor = Color.Green;
|
||||
card.Connect(smartCardReader, SHARE.Shared, PROTOCOL.T0orT1);
|
||||
|
||||
/// Read the serial number of the card
|
||||
APDUResponse response = card.Transmit(new APDUCommand(0xFF, 0xCA, 0x00, 0x00, null, 7));
|
||||
string tag = response.ToString();
|
||||
tag = response.ToString();
|
||||
|
||||
card.Disconnect(DISCONNECT.Leave);
|
||||
}
|
||||
catch
|
||||
{
|
||||
tag = string.Empty;
|
||||
}
|
||||
|
||||
DBSettings[] dbs = new DBSettings[] { GlobalData.RemoteUsersDB, GlobalData.LocalUsersDB };
|
||||
bool authorized = false;
|
||||
@ -335,7 +344,8 @@ namespace Users.Forms
|
||||
{
|
||||
if (!string.IsNullOrEmpty(smartCardReader))
|
||||
{
|
||||
card.StopCardEvents();
|
||||
try { card.StopCardEvents(); }
|
||||
catch { }
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Loading…
Reference in New Issue
Block a user