コード例 #1
0
ファイル: AuthController.cs プロジェクト: darkogele/Rabota
        public void ChangePassword(ChangePasswordModelDTO changePasswordData)
        {
            if (changePasswordData.Password.Length < 6)
            {
                throw new Exception("Лозинката мора да содржи најмалку 6 карактери");
            }
            if (changePasswordData.Password != changePasswordData.ConfirmPassword)
            {
                throw new Exception("Лозинките не се совпаѓаат");
            }
            if ((!string.IsNullOrEmpty(changePasswordData.Password) && changePasswordData.ConfirmPassword == null) || (changePasswordData.Password == null && !string.IsNullOrEmpty(changePasswordData.ConfirmPassword)))
            {
                throw new Exception("За промена на лозинка потребно е да се внесат: Лозинка и Потврда за лозинка");
            }

            var userDb = _authRepository.GetUsers().FirstOrDefault(x => x.UserName == changePasswordData.Username);

            if (userDb == null)
            {
                throw new Exception("Не постои таков корисник");
            }

            var userManager = new UserManager <ApplicationUser>(new UserStore <ApplicationUser>(new InteropContext()));

            var hashPassword = userManager.PasswordHasher.HashPassword(changePasswordData.Password);

            userDb.PasswordHash = hashPassword;

            try
            {
                _authRepository.ChangePassword(userDb);
            }
            catch (Exception exception)
            {
                throw exception;
            }
        }
コード例 #2
0
ファイル: AuthController.cs プロジェクト: darkogele/Rabota
        public void ChangePassword(ChangePasswordModelDTO changePasswordData)
        {
            char[] specialChars     = "!@#$%^&*()".ToCharArray();
            var    validationErrors = new List <string>();

            if (changePasswordData.Password.Length < 6)
            {
                validationErrors.Add("Лозинката мора да содржи најмалку 6 карактери");
            }
            if (!changePasswordData.Password.Any(char.IsLetter))
            {
                validationErrors.Add("Лозинката мора да содржи барем една буква");
            }
            if (!changePasswordData.Password.Any(char.IsUpper))
            {
                validationErrors.Add("Лозинката мора да содржи барем една голема буква");
            }
            if (!changePasswordData.Password.Any(char.IsLower))
            {
                validationErrors.Add("Лозинката мора да содржи барем една мала буква");
            }
            if (!changePasswordData.Password.Any(char.IsDigit))
            {
                validationErrors.Add("Лозинката мора да содржи барем еден број");
            }
            if (changePasswordData.Password.IndexOfAny(specialChars) == -1)
            {
                validationErrors.Add("Лозинката мора да содржи барем еден специјален карактер !@#$%^&*()");
            }
            if (changePasswordData.Password != changePasswordData.ConfirmPassword)
            {
                validationErrors.Add("Лозинките не се совпаѓаат");
            }
            if ((!string.IsNullOrEmpty(changePasswordData.Password) && changePasswordData.ConfirmPassword == null) || (changePasswordData.Password == null && !string.IsNullOrEmpty(changePasswordData.ConfirmPassword)))
            {
                validationErrors.Add("За промена на лозинка потребно е да се внесат: Лозинка и Потврда за лозинка");
            }

            if (validationErrors.Count > 0)
            {
                string errorMessage = string.Empty;
                foreach (var validationError in validationErrors)
                {
                    errorMessage += validationError + "." + Environment.NewLine;
                }
                if (!string.IsNullOrEmpty(errorMessage))
                {
                    throw new Exception(errorMessage);
                }
            }

            var userDb = _authRepository.GetUsers().FirstOrDefault(x => x.UserName == changePasswordData.Username);

            if (userDb == null)
            {
                throw new Exception("Не постои таков корисник");
            }

            var userManager = new UserManager <ApplicationUser>(new UserStore <ApplicationUser>(new InteropContext()));

            var hashPassword = userManager.PasswordHasher.HashPassword(changePasswordData.Password);

            userDb.PasswordHash = hashPassword;

            try
            {
                _authRepository.ChangePassword(userDb);
            }
            catch (Exception exception)
            {
                throw exception;
            }
        }