This repository has been archived on 2023-03-26. You can view files and clone it, but cannot push or open issues or pull requests.
usb-lockdown/USB Lockdown/authentication.cs

65 lines
1.9 KiB
C#

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading;
using System.IO;
namespace USB_Lockdown
{
class authentication
{
internal static Thread authenticationThread;
internal static Thread deviceScanner;
internal static void startScanning()
{
Thread authenticationThread = new Thread(beginAuthentication);
}
internal static void beginAuthentication()
{
Thread deviceScanner = new Thread(deviceScan.scanDevices);
deviceScanner.Join(); //the thread will exit when a valid drive has been found
//code here to unlock computer and
}
}
class deviceScan
{
internal static DriveInfo validDrive;
internal static DriveInfo[] driveListing;
private static bool driveFound = false;
internal static void scanDevices()
{
while (!driveFound) {
driveListing = DriveInfo.GetDrives();
foreach (DriveInfo currentDrive in driveListing)
{
if (File.Exists(currentDrive.Name + "\\LockDown.config")) // the first check for a valid drive. Could be something else, but this is a lightweight test to be done first!
{
if (driveValidate(currentDrive))
{
validDrive = currentDrive;
driveFound = true;
break;
}
}
}
}
}
internal static bool driveValidate(DriveInfo drive){
return true;
}
internal static void resetValues()
{
validDrive = null;
driveListing = null;
driveFound = false;
}
}
}