コード例 #1
0
        /// <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);
        }
コード例 #2
0
        /// <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);
        }
コード例 #3
0
        /// <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);
            }
        }
コード例 #4
0
        /// <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);
        }
コード例 #5
0
        /// <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);
        }