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); } }
/// <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); } } }
// <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); } } }