Exemple #1
0
 public ActionResult PassRecovery(PassRecoveryViewModel model)
 {
     try
     {
         var user = _userManager.GetUserByEmail(model.Email);
         if (user == null)
         {
             throw new Exception(Resource.EmailNotRegistered);
         }
         var rand    = new Random();
         var newPass = Convert.ToString(rand.Next(100000, 999999));
         var salt    = PasswordHashing.GenerateSaltValue();
         var pass    = PasswordHashing.HashPassword(newPass, salt);
         user.passwordSalt = salt;
         user.password     = pass;
         _userManager.Update(user);
         _userManager.SendPassRecovery(user, newPass);
         return(RedirectToRoute("EndPassRecovery"));
     }
     catch (Exception e)
     {
         model.Error = e.Message;
         return(View(model));
     }
 }
        public void PasswordIsHashedTest()
        {
            string input  = "Password";
            string output = PasswordHashing.HashPassword(input);

            Assert.AreNotEqual(input, output);
        }
Exemple #3
0
 public ActionResult LogIn(LoginViewModel model)
 {
     try
     {
         var user = _userManager.GetUserByEmail(model.EmailLogin);
         if (user == null)
         {
             throw new Exception(Resource.EmailNotRegistered);
         }
         var passLogin = PasswordHashing.HashPassword(model.PasswordLogin, user.passwordSalt);
         if (user.password != passLogin)
         {
             throw  new Exception(Resource.WrongPassword);
         }
         if (!user.isActivated)
         {
             throw new Exception(Resource.NotActived);
         }
         FormsAuthentication.SetAuthCookie(user.email, false);
         return(RedirectToAction("UserPage", "Profile", user.id));
     }
     catch (Exception e)
     {
         model.Error = e.Message;
         return(View(model));
     }
 }
Exemple #4
0
        public IHttpActionResult PutUser(string username, User user)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            var dbUser = db.User.SingleOrDefault(a => a.Username == username);

            if (dbUser != null)
            {
                if (dbUser.Password != user.Password)
                {
                    dbUser.Password = PasswordHashing.HashPassword(user.Password);
                }
                if (dbUser.OsuId != user.OsuId)
                {
                    dbUser.OsuId = user.OsuId;
                }
                if (dbUser.Email != user.Email)
                {
                    dbUser.Email = user.Email;
                }
                if (dbUser.Avatar != user.Avatar)
                {
                    dbUser.Avatar = user.Avatar;
                }
                db.SaveChanges();

                return(StatusCode(HttpStatusCode.NoContent));
            }


            return(NotFound());
        }
Exemple #5
0
        public async Task <ActionResult <Guid> > POST([FromBody] RegisterTeamViewModel registerTeamViewModel)
        {
            // Generate a unique playerID
            var player         = new Player(registerTeamViewModel.TeamName);
            var hashedPassword = _passwordHashing.HashPassword(registerTeamViewModel.Password);
            await _database.SavePlayer(player, hashedPassword);

            // Reload the player
            var reloadedPlayer = await _database.LoadPlayer(player.ID);

            if (reloadedPlayer == null)
            {
                var details = new ValidationProblemDetails {
                    Detail = $"No player with the ID {player.ID} exists"
                };
                return(ValidationProblem(details));
            }

            if (!_passwordHashing.CompareHashes(registerTeamViewModel.Password, reloadedPlayer.Password))
            {
                return(Forbid());
            }

            // Create them a game for them to develop against
            if (!reloadedPlayer.CurrentGameID.HasValue)
            {
                await _gameCreator.CreateInitialGame(reloadedPlayer.ID);
            }
            return(reloadedPlayer.ID);
        }
Exemple #6
0
        public ActionResult EditPassword(EditPasswordViewModel model, long id)
        {
            try
            {
                if (!ModelState.IsValid)
                {
                    return(View(model));
                }
                var user = _userManager.GetById(id);
                if (user.password != PasswordHashing.HashPassword
                        (model.Password, user.passwordSalt))
                {
                    throw new Exception(Resource.WrongPassword);
                }

                var newSalt = PasswordHashing.GenerateSaltValue();
                user.passwordSalt = newSalt;
                user.password     = PasswordHashing.HashPassword(model.NewPassword, newSalt);
                _userManager.Update(user);
                return(RedirectToRoute("UserPage"));
            }
            catch (Exception e)
            {
                model.Error = e.Message;
                return(View(model));
            }
        }
 public static UserEntity ToUserEntity(this UserCreateModel usercreateModel)
 {
     return(new UserEntity {
         PartitionKey = Global.UserPartitionKey,
         RowKey = usercreateModel.Id,
         Id = usercreateModel.Id,
         PasswordHash = PasswordHashing.HashPassword(usercreateModel.Password),
         UserName = usercreateModel.UserName
     });
 }
Exemple #8
0
        public void GenerateHashFromPasswordAndSaltTest()
        {
            _employeeController = new EmployeeController();
            Employee employee             = _employeeController.GetEmployeeByUsername("TobiAs");
            string   salt                 = employee.Salt;
            string   password             = "******";
            string   hashedPassword       = PasswordHashing.HashPassword(salt + password);
            string   hashedPasswordFromDb = employee.Password;

            Assert.AreEqual(hashedPassword, hashedPasswordFromDb);
        }
            private Account _ValidateLogin(string accountName, string passwordInput)
            {
                var account = new Account();
                var thread  = new Thread(() =>
                {
                    account = Execution_ValidateLogin(accountName, PasswordHashing.HashPassword(passwordInput));
                });

                thread.Start();
                thread.Join(); //By doing join it will wait for the method to finish
                return(account);
            }
        public Task CreateAsync(IdentityUser user)
        {
            using (LogWrapper logger = new LogWrapper())
            {
                if (user == null)
                {
                    logger.Error("Пользователь не может быть null.");
                    throw new ArgumentNullException(nameof(user), "Пользователь не может быть null.");
                }
                try
                {
                    return(Task.Factory.StartNew(() =>
                    {
                        using (var connection = new SqlConnection(_connectionString))
                        {
                            connection.Open();

                            user.Id = Guid.NewGuid();
                            user.RegDate = DateTimeOffset.Now;
                            user.PasswordHash = PasswordHashing.HashPassword(user.PasswordHash);

                            connection.Execute("upCreate_new_user",
                                               new
                            {
                                user.Id,
                                user.UserName,
                                user.PasswordHash,
                                user.Email,
                                user.EmailConfirmed,
                                user.FirstName,
                                user.SecondName,
                                user.RegDate,
                                user.City,
                                user.BirthDate,
                                user.SecurityStamp
                            },
                                               commandType: CommandType.StoredProcedure);
                        }
                    }));
                }
                catch (Exception e)
                {
                    logger.Error(e.Message);
                    return(null);
                }
            }
        }
            //Async method. Below will call upon a private corresponding method in another thread.
            private void _Register(User inputUser, SpaceShip inputShip, string accountName, string password)
            {
                var dbHandler = new StarWarsContext {
                    ConnectionString = ConnectionString
                };
                var outputAccount = new Account
                {
                    AccountName = accountName,
                    Password    = PasswordHashing.HashPassword(password),
                    User        = inputUser,
                    SpaceShip   = inputShip
                };

                inputUser.Homeplanet = dbHandler.Homeworlds.FirstOrDefault(g => g.Name == inputUser.Homeplanet.Name) ??
                                       inputUser.Homeplanet;
                dbHandler.Accounts.Add(outputAccount);
                dbHandler.SaveChanges();
            }
Exemple #12
0
        public ActionResult Registration(RegisterViewModel model)
        {
            try
            {
                var entity = Mapper.Map <RegisterViewModel, User>(model);
                var user   = _userManager.GetUserByEmail(model.Email);
                if (user != null)
                {
                    throw new Exception("лваолв");
                }

                var salt = PasswordHashing.GenerateSaltValue();
                var pass = PasswordHashing.HashPassword(entity.password, salt);
                entity.passwordSalt = salt;
                entity.password     = pass;
                entity.photo        = "/images/Account/account.jpg";
                _userManager.Add(entity);

                entity.roles = new List <UserInRoles>()
                {
                    new UserInRoles()
                    {
                        id_roles = 2, id_user = entity.id
                    }
                };
                _userManager.Update(entity);

                var url = Url.Action("ConfirmEmail", "Account", new { token = entity.id, email = entity.email },
                                     Request.Url.Scheme);
                _userManager.SentConfirmMail(entity, url);


                return(RedirectToRoute("AfterRegistration"));
            }
            catch (Exception e)
            {
                model.Error = e.Message;
                return(View(model));
            }
        }
Exemple #13
0
        public async Task <IHttpActionResult> PostUser(User user)
        {
            string json;

            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            var dbUser = db.User.Where(a => a.Username.Equals(user.Username) || a.Email.Equals(user.Email)).FirstOrDefault();

            if (dbUser == null)
            {
                user.Password = PasswordHashing.HashPassword(user.Password);

                db.User.Add(user);
                await db.SaveChangesAsync();

                json = JsonConvert.SerializeObject(new { userExists = true });
                return(Ok(json));
            }
            json = JsonConvert.SerializeObject(new { userExists = false });
            return(Ok(json));
        }
 public string HashPassword(string password)
 {
     return(PasswordHashing.HashPassword(password));
 }
Exemple #15
0
        public static void Initialize(diaryContext context)
        {
            if (context.Users.Any())
            {
                return;
            }

            var passwordhash = new PasswordHashing();

            var users = new User[]
            {
                new User
                {
                    Id                 = "1",
                    FirstName          = "Khoa",
                    LastName           = "Nguyen Anh",
                    Email              = "*****@*****.**",
                    Brithday           = DateTime.Parse("1/1/1998"),
                    UserName           = "******",
                    NormalizedUserName = "******",
                    PasswordHash       = passwordhash.HashPassword(null, "12345678"),
                    SecurityStamp      = "randomestring"
                },
                new User
                {
                    Id                 = "2",
                    FirstName          = "Khoi",
                    LastName           = "Tran Dang",
                    Email              = "*****@*****.**",
                    Brithday           = DateTime.Parse("2/2/1998"),
                    UserName           = "******",
                    NormalizedUserName = "******",
                    PasswordHash       = passwordhash.HashPassword(null, "12345678"),
                    SecurityStamp      = "randomestring"
                },
                new User
                {
                    Id                 = "3",
                    FirstName          = "Duy",
                    LastName           = "Ung Van",
                    Email              = "*****@*****.**",
                    Brithday           = DateTime.Parse("3/3/1998"),
                    UserName           = "******",
                    NormalizedUserName = "******",
                    PasswordHash       = passwordhash.HashPassword(null, "12345678"),
                    SecurityStamp      = "randomestring"
                },
                new User
                {
                    Id                 = "4",
                    FirstName          = "Chi",
                    LastName           = "Le Vinh",
                    Email              = "*****@*****.**",
                    Brithday           = DateTime.Parse("4/4/1998"),
                    UserName           = "******",
                    NormalizedUserName = "******",
                    PasswordHash       = passwordhash.HashPassword(null, "12345678"),
                    SecurityStamp      = "randomestring"
                }
            };

            var events = new Event[]
            {
                new Event
                {
                    ID         = 1,
                    User       = users[0],
                    Info       = "Birthday",
                    StartDate  = DateTime.Parse("1/1/2017"),
                    EndDate    = DateTime.Parse("2/1/2017"),
                    Occurrence = Occurrency.once_a_year
                },
                new Event
                {
                    ID         = 2,
                    User       = users[1],
                    Info       = "Birthday",
                    StartDate  = DateTime.Parse("2/2/2017"),
                    EndDate    = DateTime.Parse("3/2/2017"),
                    Occurrence = Occurrency.once_a_year
                },
                new Event
                {
                    ID         = 3,
                    User       = users[2],
                    Info       = "Birthday",
                    StartDate  = DateTime.Parse("3/3/2017"),
                    EndDate    = DateTime.Parse("4/3/2017"),
                    Occurrence = Occurrency.once_a_year
                },
                new Event
                {
                    ID         = 4,
                    User       = users[3],
                    Info       = "Birthday",
                    StartDate  = DateTime.Parse("4/4/2017"),
                    EndDate    = DateTime.Parse("5/4/2017"),
                    Occurrence = Occurrency.once_a_year
                }
            };


            var entries = new Entry[]
            {
                new Entry
                {
                    ID      = 1,
                    User    = users[0],
                    Title   = "Cong tac xa hoi",
                    Content = "Di cong tac xa hoi",
                    Date    = DateTime.Parse("11/11/2017"),
                    Mood    = Mood.happy
                },
                new Entry
                {
                    ID      = 2,
                    User    = users[1],
                    Title   = "OOP",
                    Content = "Hoc oop",
                    Date    = DateTime.Parse("11/11/2017"),
                    Mood    = Mood.normal
                },
                new Entry
                {
                    ID      = 3,
                    User    = users[2],
                    Title   = "Late night",
                    Content = "On fackbook khuya",
                    Date    = DateTime.Parse("11/11/2017"),
                    Mood    = Mood.normal
                },
                new Entry
                {
                    ID      = 4,
                    User    = users[3],
                    Title   = "????",
                    Content = "Mat tieu",
                    Date    = DateTime.Parse("11/11/2017"),
                    Mood    = Mood.normal
                }
            };

            /*
             * foreach (User u in users)
             * {
             *    u.Entries = new Collection<Entry>();
             *    u.Events = new Collection<Event>();
             * }
             *
             * for (int i = 0; i < users.Length; ++i)
             * {
             *    users[i].Entries.Add(entries[i]);
             *    users[i].Events.Add(events[i]);
             * }
             */

            // add user to database
            foreach (User u in users)
            {
                context.Add(u);
            }
            context.SaveChanges();

            foreach (Event e in events)
            {
                context.Add(e);
            }
            context.SaveChanges();

            foreach (Entry e in entries)
            {
                context.Add(e);
            }
            context.SaveChanges();
        }