public void LoginUser(string username, string password) { UserItem user = null; try { user = _db.GetUserItem(username); } catch (Exception) { throw new Exception("Either the username or the password is invalid."); } PasswordManager passHelper = new PasswordManager(password, user.Salt); if (!passHelper.Verify(user.Hash)) { throw new Exception("Either the username or the password is invalid."); } _roleMgr = new RoleManager(user); }
public void RegisterUser(User userModel) { UserItem userItem = null; try { userItem = _db.GetUserItem(userModel.Username); } catch (Exception) { } if (userItem != null) { throw new UserExistsException("The username is already taken."); } if (userModel.Password != userModel.ConfirmPassword) { throw new PasswordMatchException("The password and confirm password do not match."); } PasswordManager passHelper = new PasswordManager(userModel.Password); UserItem newUser = new UserItem() { FirstName = userModel.FirstName, LastName = userModel.LastName, Email = userModel.Email, Username = userModel.Username, Salt = passHelper.Salt, Hash = passHelper.Hash, RoleId = (int)RoleManager.eRole.Customer }; _db.AddUserItem(newUser); LoginUser(newUser.Username, userModel.Password); }
/// <summary> /// Creates a user for each role type /// </summary> /// <param name="db">Database interface used to create the data</param> public static void PopulateDatabaseWithUsers(IVendingService db) { using (TransactionScope scope = new TransactionScope()) { PasswordManager passHelper = new PasswordManager("a"); db.AddRoleItem(new RoleItem() { Id = 1, Name = "Administrator" }); db.AddRoleItem(new RoleItem() { Id = 2, Name = "Customer" }); db.AddRoleItem(new RoleItem() { Id = 3, Name = "Executive" }); db.AddRoleItem(new RoleItem() { Id = 4, Name = "Serviceman" }); UserItem item = new UserItem() { FirstName = "Joe", LastName = "Piscapoe", Username = "******", Email = "*****@*****.**", RoleId = (int)RoleManager.eRole.Administrator }; item.Hash = passHelper.Hash; item.Salt = passHelper.Salt; item.Id = db.AddUserItem(item); item = new UserItem() { FirstName = "John", LastName = "Doe", Username = "******", Email = "*****@*****.**", RoleId = (int)RoleManager.eRole.Customer }; item.Hash = passHelper.Hash; item.Salt = passHelper.Salt; item.Id = db.AddUserItem(item); item = new UserItem() { FirstName = "Sally", LastName = "Mae", Username = "******", Email = "*****@*****.**", RoleId = (int)RoleManager.eRole.Executive }; item.Hash = passHelper.Hash; item.Salt = passHelper.Salt; item.Id = db.AddUserItem(item); item = new UserItem() { FirstName = "Alex", LastName = "Carol", Username = "******", Email = "*****@*****.**", RoleId = (int)RoleManager.eRole.Serviceman }; item.Hash = passHelper.Hash; item.Salt = passHelper.Salt; item.Id = db.AddUserItem(item); scope.Complete(); } }