/// <summary> /// 将DPX文件中的DIGIPASS信息存入数据库 /// </summary> /// <param name="DPXFileNamePath">DPX文件路径</param> /// <param name="InitKey">DPX文件使用的KEY</param> /// <param name="Msg">返回的操作信息</param> /// <returns>操作是否成功</returns> public bool SaveDataFromDPX(string DPXFileNamePath, string InitKey, ref string Msg) { DatabaseAccess.BeginTransaction(); AAL2Wrap dp = null; try { dp = new AAL2Wrap(); int appCount = 0, digiPassCount = 0; string[] AppliNames = dp.AAL2DPXInit(DPXFileNamePath, InitKey, ref appCount, ref digiPassCount); if (AppliNames == null) { Msg = string.Format("DPX Import Error:{0}", dp.getLastError()); return(false); } AAL2Wrap.TDigipass[] AppliBlobs; AppliBlobs = new AAL2Wrap.TDigipass[appCount]; for (int j = 0; j < (digiPassCount * appCount);) { AppliBlobs = dp.AAL2DPXGetTokenBlobs(ref appCount); for (int l = 0; l < appCount; l++) { SaveDigiPass(AppliBlobs[l].SerialNumber, AppliBlobs[l].Type, AppliBlobs[l].Mode, AppliBlobs[l].bDpData); j++; } } Msg = string.Format("AppCount:{0},DigiPassCount:{1} Saved", appCount, digiPassCount); return(true); } catch (SqlException ex) { Msg = ex.Message; DatabaseAccess.RollbackTransaction(); return(false); } finally { dp.AAL2DPXClose(); DatabaseAccess.CommitTransaction(); } }
/// <summary> /// 将DPX文件中的DIGIPASS信息存入数据库 /// </summary> /// <param name="DPXFileNamePath">DPX文件路径</param> /// <param name="InitKey">DPX文件使用的KEY</param> /// <param name="Msg">返回的操作信息</param> /// <returns>操作是否成功</returns> public bool SaveDataFromDPX(string DPXFileNamePath, string InitKey, ref string Msg) { DatabaseAccess.BeginTransaction(); AAL2Wrap dp = null; try { dp = new AAL2Wrap(); int appCount = 0, digiPassCount = 0; string[] AppliNames = dp.AAL2DPXInit(DPXFileNamePath, InitKey, ref appCount, ref digiPassCount); if (AppliNames == null) { Msg = string.Format("DPX Import Error:{0}", dp.getLastError()); return false; } AAL2Wrap.TDigipass[] AppliBlobs; AppliBlobs = new AAL2Wrap.TDigipass[appCount]; for (int j = 0; j < (digiPassCount * appCount); ) { AppliBlobs = dp.AAL2DPXGetTokenBlobs(ref appCount); for (int l = 0; l < appCount; l++) { SaveDigiPass(AppliBlobs[l].SerialNumber, AppliBlobs[l].Type, AppliBlobs[l].Mode, AppliBlobs[l].bDpData); j++; } } Msg = string.Format("AppCount:{0},DigiPassCount:{1} Saved", appCount, digiPassCount); return true; } catch (SqlException ex) { Msg = ex.Message; DatabaseAccess.RollbackTransaction(); return false; } finally { dp.AAL2DPXClose(); DatabaseAccess.CommitTransaction(); } }
/// <summary> /// 保存DIGIPASS信息 /// </summary> /// <param name="Digipass">DIGIPASS数据</param> public void SaveDigiPass(AAL2Wrap.TDigipass Digipass) { SaveDigiPass(Digipass.SerialNumber, Digipass.Type, Digipass.Mode, Digipass.bDpData); }
/// <summary> /// 验证动态密码,RESPONSE ONLY /// </summary> /// <param name="passWord">密码</param> /// <param name="Digipass">DIGIPASS数据</param> /// <param name="Msg">返回的消息</param> /// <returns>验证成功返回HOSTCODE否则返回FALSE</returns> public bool VerifyDigiPass(string passWord, AAL2Wrap.TDigipass Digipass, ref string Msg) { return(VerifyDigiPass(passWord, Digipass.SerialNumber, Digipass.Type, Digipass.Mode, Digipass.bDpData, ref Msg)); }