/// <summary> /// Findet den User anhand der Emailadresse /// </summary> /// <param name="username"></param> /// <returns></returns> public static Benutzer GetUser(string username) { log.Info("GetUser(username)"); Benutzer user = null; using (var context = new Innovation4AustriaEntities()) { try { user = context.AlleBenutzer.Include(x => x.Firma).Include(x => x.Rolle).Where(x => x.Emailadresse == username).FirstOrDefault(); if (user == null) { log.Info("Unknown username!"); } } catch (Exception ex) { log.Error("Exception in GetUser", ex); if (ex.InnerException != null) { log.Error("Exception in GetUser (inner)", ex.InnerException); } } } return(user); }
/// <summary> /// Setzt den Benutzer auf inaktiv /// </summary> /// <param name="username"></param> /// <returns></returns> public static bool DeaktiviereBenutzer(string username) { log.Info("DeactivateUser(username)"); bool success = false; if (string.IsNullOrEmpty(username)) { throw new ArgumentNullException(nameof(username)); } else { using (var context = new Innovation4AustriaEntities()) { try { Benutzer aktBenutzer = context.AlleBenutzer.Where(x => x.Emailadresse == username).FirstOrDefault(); if (aktBenutzer != null) { aktBenutzer.Aktiv = false; context.SaveChanges(); success = true; log.Info("User has been deactivated!"); } else { log.Info("Unknown username"); } } catch (Exception ex) { log.Error("Exception in DeactivateUser", ex); if (ex.InnerException != null) { log.Error("Exception in DeactivateUser (inner)", ex.InnerException); } throw; } } } return(success); }
/// <summary> /// liefert anhand der Emailadresse die Rolle des Benutzers /// </summary> /// <param name="emailadresse"></param> /// <returns></returns> public static Rolle GetUserRole(string emailadresse) { log.Info("GetUserRoles(username)"); if (string.IsNullOrEmpty(emailadresse)) { throw new ArgumentNullException(nameof(emailadresse)); } else { Rolle userRole = null; using (var context = new Innovation4AustriaEntities()) { try { Benutzer aktBenutzer = context.AlleBenutzer.Where(x => x.Emailadresse == emailadresse).FirstOrDefault(); if (aktBenutzer != null) { userRole = aktBenutzer.Rolle; } } catch (Exception ex) { log.Error("Exception in GetUserRole", ex); if (ex.InnerException != null) { log.Error("Exception in GetUserRole (inner)", ex.InnerException); } throw; } } return(userRole); } }
/// <summary> /// wechselt das Passwort /// </summary> /// <param name="username"></param> /// <param name="oldPassword"></param> /// <param name="newPassword"></param> /// <returns></returns> public static Passwortwechselergebnis WechselPasswort(string username, string oldPassword, string newPassword) { Passwortwechselergebnis result = Passwortwechselergebnis.UsernameInvalid; log.Info("ChangePassword(username, oldPassword, newPassword)"); if (string.IsNullOrEmpty(username)) { throw new ArgumentNullException(nameof(username)); } else if (string.IsNullOrEmpty(newPassword)) { throw new ArgumentNullException(nameof(newPassword)); } else if (string.IsNullOrEmpty(oldPassword)) { throw new ArgumentNullException(nameof(oldPassword)); } else { using (var context = new Innovation4AustriaEntities()) { try { Benutzer aktBenutzer = context.AlleBenutzer.Where(x => x.Emailadresse == username).FirstOrDefault(); if (aktBenutzer == null) { result = Passwortwechselergebnis.UsernameInvalid; } else if (!aktBenutzer.Aktiv == true) { result = Passwortwechselergebnis.UserInactive; } else if (!aktBenutzer.Passwort.SequenceEqual(Tools.GenerierePasswort(oldPassword))) { result = Passwortwechselergebnis.PasswortInvalid; } else { log4net.LogicalThreadContext.Properties["idUser"] = aktBenutzer.Id; aktBenutzer.Passwort = Tools.GenerierePasswort(newPassword); context.SaveChanges(); result = Passwortwechselergebnis.Success; log.Info("Passwort aufgrund altem Passwort erfolgreich geändert!"); } } catch (Exception ex) { log.Error("Fehler bei BenutzerPasswortÄndern", ex); if (ex.InnerException != null) { log.Error("Fehler bei BenutzerPasswortÄndern (inner)", ex.InnerException); } throw; } } } return(result); }
/// <summary> /// findet den Benutzer anhand von Emailadresse und Password /// </summary> /// <param name="username"></param> /// <param name="password"></param> /// <returns></returns> public static LogonResult Anmelden(string username, string password) { log.Info("Logon(username, password)"); LogonResult result = LogonResult.LogonDataInvalid; if (string.IsNullOrEmpty(username)) { log.Error("Username is empty!"); throw new ArgumentNullException(nameof(username)); } else if (string.IsNullOrEmpty(password)) { log.Error("Password is empty!"); throw new ArgumentNullException(nameof(password)); } else { using (var context = new Innovation4AustriaEntities()) { try { Benutzer aktBenutzer = context.AlleBenutzer.Where(x => x.Emailadresse == username).FirstOrDefault(); if (aktBenutzer != null) { if (aktBenutzer.Passwort.SequenceEqual(Tools.GenerierePasswort(password))) { if (!aktBenutzer.Aktiv == true) { log.Info("User inactive"); result = LogonResult.UserInactive; } else { log.Info("Logon data valid"); result = LogonResult.LogonDataValid; } } else { log.Info("Logon data invalid"); result = LogonResult.LogonDataInvalid; } int anzahlZeilen = context.SaveChanges(); } else { result = LogonResult.UnkownUser; log.Info("Unknown username"); } } catch (Exception ex) { log.Error("Exception in Logon", ex); if (ex.InnerException != null) { log.Error("Exception in Logon (inner)", ex.InnerException); } } } } return(result); }