private void BtnChangeDriveLockState_Click(object sender, RoutedEventArgs e)
        {
            var driveNumber = _driveList[cBoxDriveList.SelectedIndex].Number;
            var driveName   = _driveList[cBoxDriveList.SelectedIndex].Name;

            if (_currentLocked)
            {
                var index  = cBoxDriveList.SelectedIndex;
                var window = new UnlockWindow(OnUnlockWindowClose, driveNumber, driveName);
                window.ShowDialog();
            }
            else
            {
                var bl = new BitLockerExecute(driveNumber[0].ToString());
                if (bl.Lock())
                {
                    new AlertWindow($"驱动器({driveNumber})已加锁").Show();
                    InitDriveList(cBoxDriveList.SelectedIndex);
                }
                else
                {
                    new AlertWindow($"当前驱动器({driveNumber})未使用Bitlocker加密").Show();
                }
            }
        }
Beispiel #2
0
        private void Submit()
        {
            var recoveryFileStream = new RecoveryFileStream();

            if (string.IsNullOrEmpty(_driveName))//判断当前选中磁盘名
            {
                var xml = new XMLOperation();
                _driveName = xml.GetNodeValue("/root/user/currentdrivename");
            }
            var byteFile = recoveryFileStream.Read($@".\Data\bla_{_driveName}.rp");

            if (0 == byteFile.Length)
            {
                btnErrorHint.Content    = "未找到用户密钥文件";
                btnErrorHint.Visibility = Visibility.Visible;
                ClearSimplePassword();
                return;
            }
            var aes         = new AESUtil();
            var afterAESStr = aes.AesDecrypt(byteFile, _key);

            if (string.IsNullOrEmpty(afterAESStr))
            {
                btnErrorHint.Content    = "密钥文件解析失败";
                btnErrorHint.Visibility = Visibility.Visible;
                ClearSimplePassword();
                return;
            }
            var bl = new BitLockerExecute(_driveNumber[0].ToString());

            if (!bl.Unlock(afterAESStr))
            {
                btnErrorHint.Content    = "加载了非此驱动器的密钥文件";
                btnErrorHint.Visibility = Visibility.Visible;
                ClearSimplePassword();
                return;
            }

            _onWindowCloseCallback();
            Close();
        }