public bool VerifyAdmin(Login login)
        {
            Debug.WriteLine("VERIFY");
            try
            {
                using (var db = new LunaContext())
                {
                    //Logg event to file
                    db.LogFromDB();

                    AdminUser adminUser = db.AdminUsers.FirstOrDefault(u => u.Username == login.Username);
                    if (adminUser != null)
                    {
                        byte[] usedPassword = PasswordEncryption.toHash(login.Password, adminUser.Salt);
                        return(adminUser.Password.SequenceEqual(usedPassword));
                    }
                    else
                    {
                        return(false);
                    }
                }
            } catch (Exception e)
            {
                ErrorLog(e);
                return(false);
            }
        }
Example #2
0
        /// <summary>
        /// Legger inn en ny bruker i user-tabellen. Postaddressene legges ikke dobbelt
        /// slik at vi slipper dobbeltlagring. Et problem nå er at hvis noen lager en postnummer
        /// med feil poststed, vil alle andre med samme postnummer få dette poststedet også.
        /// Vi har planlagt å bruke Posten sitt API for å fylle databasen vår med postnumre og
        /// auto-fylle posted for å unngå dette. Her er det også en try-catch vi må håndtere.
        /// </summary>
        /// <param name="inUser">Tar inn en bruker</param>
        /// <returns>returnerer en bolsk verdi avhengig av om registreringen var velykket eller ikke.</returns>


        public bool AddCustomer(UserViewModel inUser)
        {
            using (var context = new LunaContext())
            {
                try
                {
                    if (context.Users.FirstOrDefault(u => u.Email == inUser.Email) != null)
                    {
                        return(false);
                    }
                    var newUser = new User()
                    {
                        FirstName     = inUser.FirstName,
                        LastName      = inUser.LastName,
                        Address       = inUser.Address,
                        AccountStatus = 1
                    };

                    //Legger inn nytt postnr og poststed hvis det ikke allerede finnes i databasen.
                    if (context.PostalAddresses.Find(inUser.ZipCode) != null)
                    {
                        newUser.PostalAddress = context.PostalAddresses.FirstOrDefault(z => z.ZipCode == inUser.ZipCode);
                    }
                    else
                    {
                        newUser.PostalAddress = new PostalAddress()
                        {
                            ZipCode    = inUser.ZipCode,
                            PostalArea = inUser.PostalArea
                        };
                    }

                    newUser.Email = inUser.Email;

                    var salt = PasswordEncryption.addSalt();
                    newUser.Salt     = salt;
                    newUser.Password = PasswordEncryption.toHash(inUser.Password, salt);

                    context.Users.Add(newUser);
                    context.SaveChanges();
                    return(true);
                }
                catch (Exception error)
                {
                    return(false);
                }
            }
        }
 public bool VerifyAdmin(Login login)
 {
     using (var db = new LunaContext())
     {
         AdminUser adminUser = db.AdminUsers.FirstOrDefault(u => u.Username == login.Username);
         if (adminUser != null)
         {
             byte[] usedPassword = PasswordEncryption.toHash(login.Password, adminUser.Salt);
             return(adminUser.Password.SequenceEqual(usedPassword));
         }
         else
         {
             return(false);
         }
     }
 }
Example #4
0
        // <summary>
        /// Sjekker om den aktuelle brukeren ligger i databasen. Epostene er
        /// unike og hvis en epost allerede ligger i databasen vil denne metoden
        /// returnere false.
        /// </summary>
        /// <param name="user">Tar imot en bruker og sjekker eposten.</param>
        /// <returns>Returnerer true om brukern ble lagt til, og false om den allerede eksisterer.</returns>
        public bool UserInDB(UserViewModel user)
        {
            using (var db = new LunaContext())
            {
                User authUser = db.Users.FirstOrDefault(u => u.Email == user.Email);
                if (authUser != null)
                {
                    byte[] usedPassword = PasswordEncryption.toHash(user.Password, authUser.Salt);
                    return(authUser.Password.SequenceEqual(usedPassword));
                }

                else
                {
                    return(false);
                }
            }
        }