Beispiel #1
0
        internal override bool PerformInsertAction(Smartcard scard, X509Certificate2 targetCert, string pin, IList <Config.Parameter> parameters)
        {
            this.logger.InfoFormat("Bitlocker unlocking for certifiate {0}, thumbprint {1}", targetCert.Subject, targetCert.Thumbprint);

            var targetDrive = parameters.Where(x => x.Name == "target").First().Value.ToUpper();

            using (var vol = this.GetTargetVolume(targetDrive))
            {
                if (vol == null)
                {
                    return(false);
                }

                var driveStatus = (uint)vol["ProtectionStatus"];
                if (driveStatus == 2)
                {
                    this.logger.DebugFormat("Unlocking drive {0}", targetDrive);
                    var result = vol.InvokeMethod(
                        "UnlockWithCertificateThumbprint",
                        new object[] { targetCert.Thumbprint, pin });
                }
            }

            return(true);
        }
Beispiel #2
0
        internal override bool PerformRemoveAction(Smartcard scard, IList <Config.Parameter> parameters)
        {
            this.logger.Info("Locking drive");

            var targetDrive = parameters.Where(x => x.Name == "target").First().Value.ToUpper();

            using (var vol = this.GetTargetVolume(targetDrive))
            {
                vol.InvokeMethod("Lock", null);
            }

            return(true);
        }
Beispiel #3
0
 public void MapSmartCardDBModel(SmartcardModel x, Smartcard y)
 {
     y.Cellphone       = x.CellPhone;
     y.EmailAddress    = x.EMail;
     y.Gender          = x.Gender;
     y.LastUpdatedBy   = "System";
     y.LastUpdatedDate = DateTime.Now;
     y.Name            = x.Name;
     y.SmartcardNumber = x.SmartcardNumber;
     y.Status          = x.Status;
     y.Surname         = x.Surname;
     y.CardType        = x.CardType;
     y.AccountNumber   = x.AccountNumber;
     y.Location        = x.Location;
 }
Beispiel #4
0
        public string InsertOrUpdateSmartcard(SmartcardModel smartcard)
        {
            var status = "";

            try
            {
                unitOfWork.CreateTransaction();
                if (smartcard.ID <= 0)
                {
                    if (smartCardRepo.GetByCardNumber(smartcard.SmartcardNumber) == null)
                    {
                        Smartcard entity = MapSmartCardDBModel(smartcard);
                        smartCardRepo.Insert(entity);
                        unitOfWork.Save();
                        var guardians = MapGuardianDBModel(smartcard.Guardians, entity.ID);
                        guardianRepo.BulkInsert(guardians);
                        unitOfWork.Save();
                    }
                    else
                    {
                        status = "Smartcard number is already regestired.!!";
                    }
                }
                else
                {
                    var smartCardRec = smartCardRepo.GetById(smartcard.ID);
                    MapSmartCardDBModel(smartcard, smartCardRec);
                    smartCardRepo.Update(smartCardRec);

                    guardianRepo.DeleteGuardiansForSmartCard(smartcard.ID);
                    var guardians = MapGuardianDBModel(smartcard.Guardians, smartcard.ID);
                    guardianRepo.BulkInsert(guardians);
                    unitOfWork.Save();
                }
                unitOfWork.Commit();
            }
            catch (Exception)
            {
                unitOfWork.Rollback();
                throw;
            }
            return(status);
        }
Beispiel #5
0
 public SmartcardModel MapSmartCardModel(Smartcard x)
 {
     return(new SmartcardModel()
     {
         CellPhone = x.Cellphone,
         EMail = x.EmailAddress,
         Gender = x.Gender,
         ID = x.ID,
         LastUpdatedBy = x.LastUpdatedBy,
         LastUpdatedDate = x.LastUpdatedDate ?? DateTime.Now,
         Name = x.Name,
         SmartcardNumber = x.SmartcardNumber,
         Status = x.Status ?? true,
         Surname = x.Surname,
         CardType = x.CardType,
         AccountNumber = x.AccountNumber,
         Location = x.Location
     });
 }
 /// <summary>
 /// Remove action method signature
 /// </summary>
 /// <param name="scard">Smartcard object where the remove is being performed</param>
 /// <param name="parameters">Parameters for the action</param>
 /// <returns>True on action success, false otherwise</returns>
 internal virtual bool PerformRemoveAction(Smartcard scard, IList <Config.Parameter> parameters)
 {
     return(true);
 }
 /// <summary>
 /// Insert action method signature
 /// </summary>
 /// <param name="scard">Smartcard object where the insert is being performed</param>
 /// <param name="targetCert">Certificate that started this action</param>
 /// <param name="pin">PIN number for smartcard</param>
 /// <param name="parameters">Parameters for the action</param>
 /// <returns>True on action success, false otherwise</returns>
 internal virtual bool PerformInsertAction(Smartcard scard, X509Certificate2 targetCert, string pin, IList <Config.Parameter> parameters)
 {
     return(true);
 }