/// <summary> /// Checks if passed username is already used by another user /// </summary> /// <param name="username">Users username passed from register form</param> /// <returns>True - if username is not used, /// False - if username is used</returns> public static bool IsUsernameNotTaken(string username) { List <User> usersList = IOClass.ReadUsersList(); foreach (User user in usersList) { if (user.GetUsername().Equals(username)) { return(false); } } return(true); }
/// <summary> /// Checks user's credentials and allows to log in /// </summary> /// <param name="login"></param> /// <param name="password"></param> /// <returns>True - if credentials were ok, /// False - if credentials were wrong</returns> public static bool Login(string login, string password) { List <User> usersList = IOClass.ReadUsersList(); string loginHash = DataCryptography.SHA512(login); string passwordHash = DataCryptography.SHA512(password); foreach (User user in usersList) { if (user.GetUsername().Equals(loginHash)) { if (user.GetPassword().Equals(passwordHash)) { return(true); } } } return(false); }
/* * Stworzyć lepszą walidację zaznaczonych elementów listboxów by operacje nie były dozwolone na obiektach null, które powodują NullReferenceException */ #region Constructor /// <summary> /// Sets default values and starts a new task which checks connected devices /// </summary> public MainWindow(string username) { InitializeComponent(); DidUserLoggedUnauthorized = true; DeviceListChanged = false; deleteTrustedDeviceBtn.IsEnabled = false; labelUsername.Content = "Hello " + username; RsaPrivateKey = string.Empty; AuthorizationStatus = false; this.Username = username; List <User> usersList = IOClass.ReadUsersList(); string hashedUsername = DataCryptography.SHA512(username); bindFilesListBox(); bindFoldersListBox(); foreach (User user in usersList) { if (user.GetUsername().Equals(hashedUsername)) { LoggedUser = user; } } labelSecurityQuestion.Content = LoggedUser.GetQuestion(); this.UserFilesFilepath = @"C:\PAAK\" + username + @"\files.json"; this.UserFoldersFilepath = @"C:\PAAK\" + username + @"\folders.json"; this.UserKeyDataFilepath = @"C:\PAAK\" + username + @"\data.json"; this.UserEncryptedFilesFilepath = @"C:\PAAK\" + username + @"\encryptedFiles.json"; var uiSyncContext = SynchronizationContext.Current; var loopTask = Task.Run(() => { while (true) { Task.Delay(1000); UpdateConnectedDevices(); if (DeviceListChanged) { if (ConnectedTrustedDevices != null) { if (ConnectedTrustedDevices.Count.Equals(1)) { AuthorizationStatus = true; if (RsaPrivateKey.Equals(string.Empty)) { RsaPrivateKey = IOClass.ReadPrivateKeyFromDeviceToString(ConnectedTrustedDevices[0].Path); } } else { AuthorizationStatus = false; } } uiSyncContext.Post((s) => { UpdateDevicesStatus(); }, null); } } }); }