示例#1
0
        public async Task ChangePasswordAsync(ChangePasswordModel model)
        {
            try
            {
                if (model.NewPassword.Length < 8)
                {
                    throw new ServiceException(Resources.Error.PasswordLength);
                }

                var user = await _userRepository.GetAsync(model.Id);

                if (user is null)
                {
                    throw new ServiceException(Resources.Error.NotFound);
                }
                if (!PasswordHelper.CheckPassword(user.Password, model.CurrentPassword))
                {
                    throw new ServiceException(Resources.Error.PasswordMissMatch);
                }

                user.Password = PasswordHelper.EncryptPassword(model.NewPassword);

                await _userRepository.UpdateAsync(user);
            }
            catch (Exception ex)
            {
                _logger.LogError(ex, $"Change user password failed.");
                throw;
            }
        }
示例#2
0
        public async Task <UserModel> LoginAsync(UserModel model)
        {
            try
            {
                var user = await _userRepository.GetByUsernameAsync(model.Username);

                if (user == null)
                {
                    return(null);
                }

                if (PasswordHelper.CheckPassword(user.Password, model.Password))
                {
                    return(_mapper.Map <UserModel>(user));
                }
                else
                {
                    return(null);
                }
            }
            catch (Exception ex)
            {
                _logger.LogError(ex, $"Login User failed.");
                throw;
            }
        }
示例#3
0
        public ActionResult ChangePassRegistered(ChangePassRegistered passData)
        {
            try
            {
                var user = dataHelper.GetUserData(User.Identity.Name);
                ViewBag.User = user;
                if (ModelState.IsValid)
                {
                    var userPassData = dataHelper.GetPasswordData(user.Login);
                    if (passwordHelper.CheckPassword(passData.OldPassword, userPassData))
                    {
                        userPassData       = passwordHelper.CryptPassword(passData.ConfirmPassword);
                        userPassData.Login = user.Login;
                        dataHelper.ChangePass(userPassData);

                        return(RedirectToAction("Index"));
                    }
                    else
                    {
                        ModelState.AddModelError("OldPassword", "Не верный пароль");
                        return(View(passData));
                    }
                }
                return(View(passData));
            }
            catch (Exception ex)
            {
                logger.ErrorMessage("305", ex);
                return(View("Error", new Error()
                {
                    ExDescription = ex.Message
                }));
            }
        }
        public async Task <IActionResult> Login(LoginModel model)
        {
            if (ModelState.IsValid)
            {
                //получаем пользователя по введенному логину (email). Думаем, что логины уникальны,
                //и поэтому при регистрации по хорошему надо добавить проверку на уникальность логина

                User user = await _context.Users
                            .Include(u => u.Role)
                            .FirstOrDefaultAsync(u => u.Email == model.Email);

                if (user != null && PasswordHelper.CheckPassword(model.Password, user.Password, user.Salt))
                {
                    await Authenticate(user); // аутентификация

                    Log.Information("Вход пользователя {@user}", user);

                    return(RedirectToAction("List", "Product"));
                }

                ModelState.AddModelError("", "Некорректные логин и(или) пароль");
            }

            Log.Information("Неудачная опытка входа {@model}", model);

            return(View(model));
        }
示例#5
0
        public IActionResult Login(LoginRequestDto request)
        {
            var authenticatedStudent = _dbService.GetUserInfo(request.Login);

            if (authenticatedStudent == null ||
                !PasswordHelper.CheckPassword(authenticatedStudent.PasswordHash, authenticatedStudent.PasswordSalt, request.Password))
            {
                return(BadRequest("Wrong login or password"));
            }

            var refreshToken = Guid.NewGuid().ToString();

            _dbService.SaveRefreshToken(authenticatedStudent.IndexNumber, refreshToken);

            return(CreateTokenResponse(authenticatedStudent, refreshToken));
        }
        public async Task <IActionResult> Register([FromBody] UserCredentialsDto model)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest());
            }

            if (!PasswordHelper.CheckPassword(model.Password))
            {
                return(BadRequest("new password is incorrect"));
            }

            var user = new User
            {
                UserName            = model.Email,
                Email               = model.Email,
                FirstName           = model.FirstName,
                LastName            = model.LastName,
                IsActive            = model.IsActive,
                IsPasswordForChange = true,
            };

            var oldUser = await _userManager.FindByEmailAsync(model.Email);

            if (oldUser != null)
            {
                return(new StatusCodeResult(StatusCodes.Status409Conflict));
            }

            var result = await _userManager.CreateAsync(user, model.Password);

            await _userManager.AddToRoleAsync(user, model.RoleName);



            if (result.Succeeded)
            {
                return(Ok(user));
            }
            foreach (var error in result.Errors)
            {
                ModelState.AddModelError("error", error.Description);
            }
            return(BadRequest(result.Errors));
        }
示例#7
0
 public UserModel Login(string username, string password)
 {
     LoggedInUser = Context.Users.Where(e => e.UserName == username).Select(e => new UserModel
     {
         Id       = e.Id,
         UserName = e.UserName,
         Password = e.Password
     }).FirstOrDefault();
     if (LoggedInUser == null)
     {
         return(null);
     }
     if (PasswordHelper.CheckPassword(password, LoggedInUser.Password))
     {
         return(LoggedInUser);
     }
     LoggedInUser = null;
     return(null);
 }
示例#8
0
        public ActionResult SignIn(LoginViewModel model)
        {
            if (ModelState.IsValid)
            {
                User user = db.Users.FirstOrDefault(x => x.RutUser == model.Rut);

                if (user != null && PasswordHelper.CheckPassword(model.Password, user.PasswordUserHash, user.PasswordUserSalt))
                {
                    Session["UserId"] = user.UserId;
                    InitOwin(user);
                    TempData["SuccessMessage"] = $"Bienvenido { user.NombreCompleto}";
                    return(RedirectToAction("Index", "Home"));
                }

                TempData["ErrorMessage"] = "Error al iniciar sesión";
                return(RedirectToAction("Login"));
            }
            TempData["ErrorMessage"] = "Error usuario y/o Contraseña";
            return(RedirectToAction("Login"));
        }
        public async Task <ActionResult> SignIn(LoginViewModel model)
        {
            if (ModelState.IsValid)
            {
                User user = await db.Users.FirstOrDefaultAsync(x => x.Email == model.Email);

                if (user != null && PasswordHelper.CheckPassword(model.Password, user.PasswordHash, user.PasswordSalt))
                {
                    await InitOwin(user);

                    TempData["SuccessMessage"] = $"Bienvenido {user.FullName}";
                    return(RedirectToAction("Index", "Home")); //json
                }

                TempData["ErrorMessage"] = "Inicio de sesión incorrecto";
                return(RedirectToAction("Login"));
            }

            TempData["ErrorMessage"] = "Existieron errores de validación";
            return(RedirectToAction("Login"));
        }
示例#10
0
        public ActionResult Login(UserLoginDataVM loginData)
        {
            if (ModelState.IsValid)
            {
                var passData = dataHelper.GetPasswordData(loginData.Login);
                if (passData == null)
                {
                    ModelState.AddModelError("Login", "Неправильный логин или E-mail!");
                    return(View(loginData));
                }
                else
                if (passwordHelper.CheckPassword(loginData.Password, passData))
                {
                    var user = dataHelper.GetUserData(loginData.Login);
                    if (!user.Confirmed)
                    {
                        ModelState.AddModelError("Login", "Вы не подтвердили регистрацию по E-mail!");
                    }
                    else if (user.Status == 1)
                    {
                        ModelState.AddModelError("Login", "Вы ЗАБЛОКИРОВАНЫ! С вопросами обращайтесь к администрации.");
                    }
                    else
                    {
                        FormsAuthentication.SetAuthCookie(passData.Login, true);
                        Session["userId"] = user.Id;
                        logger.InfoMessage("104", $"User {passData.Login} has login in");
                        return(RedirectToAction("Index", "Home"));
                    }
                }
                else
                {
                    ModelState.AddModelError("Password", "Неправильный пароль!");
                }
            }

            return(View(loginData));
        }
示例#11
0
        public ActionResult ChangePassword(PasswordModel passwordModel)
        {
            try
            {
                LoginHelper.CheckAccess(Session);
            }
            catch (Exception)
            {
                return(RedirectToAction("Login", "Login"));
            }

            PasswordHelper passwordHelper = new PasswordHelper();

            int userId      = (int)Session["userId"];
            var userHandler = new UserHandler();
            var user        = userHandler.Get(userId);

            if (!user.CompletedRequest)
            {
                return(RedirectToAction("Index", "Error", new { errorMessage = user.ErrorMessage.Replace(' ', '-') }));
            }

            if (!passwordHelper.CheckPassword(user.Entity, passwordModel))
            {
                ViewBag.UpdatePasswordMessage = passwordHelper.UpdatePasswordMessage;
                return(View("ChangePassword"));
            }

            user = userHandler.Update(user.Entity);

            if (!user.CompletedRequest)
            {
                return(RedirectToAction("Index", "Error", new { errorMessage = user.ErrorMessage.Replace(' ', '-') }));
            }

            return(RedirectToAction("UserProfile", "Account"));
        }
示例#12
0
        /// <summary>
        /// Check if a form can be showed
        /// </summary>
        /// <param name="o"></param>
        /// <param name="formName"></param>
        /// <returns></returns>
        private bool CanShowForm(object o, string formName)
        {
            bool ret = false;

            if (_isPasswordLogged)
            {
                //already logged in, show the form
                ret = true;
            }
            else
            {
                if (!PasswordHelper.CheckPassword(String.Join(",", _passwordProtectedForms), _passwordProtectedFormsCheck) || _passwordProtectedForms.Contains(formName) || _passwordProtectedForms.FirstOrDefault() == "*")
                {
                    //check for inserted password
                    string input = null;
                    if (InputBox.ShowPassword(language.passwordInputMessage, language.passwordInputTitle, ref input) == DialogResult.OK)
                    {
                        if (PasswordHelper.CheckPassword(input, _passwordProtectedFormsPassword))
                        {
                            _isPasswordLogged = true;
                            toolStripStatusLabel_logout.Visible = true;
                            ret = true;
                        }
                        else
                        {
                            MessageBox.Show(language.passwordErrorMessage, language.passwordErrorTitle, MessageBoxButtons.OK, MessageBoxIcon.Error);
                        }
                    }
                }
                else
                {
                    ret = true;
                }
            }

            return(ret);
        }
示例#13
0
        /// <summary>
        /// Run a report
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void button_execute_Click(object sender, EventArgs e)
        {
            if (comboBox_reports.SelectedIndex != -1 && comboBox_reports.SelectedIndex != 0)
            {
                DataTable dt = new DataTable();

                int     reports_id = Convert.ToInt32(comboBox_reports.SelectedValue);
                reports report     = _dentnedModel.Reports.Find(reports_id);

                if (report.reports_ispasswordprotected && !_isPasswordLogged)
                {
                    string input = null;
                    if (InputBox.ShowPassword(language.reportsPasswordInputMessage, language.reportsPasswordInputTitle, ref input) == DialogResult.OK)
                    {
                        if (PasswordHelper.CheckPassword(input, ConfigurationManager.AppSettings["passwordProtectedReports"]))
                        {
                            _isPasswordLogged = true;
                        }
                        else
                        {
                            MessageBox.Show(language.reportsPasswordErrorMessage, language.reportsPasswordErrorTitle, MessageBoxButtons.OK, MessageBoxIcon.Error);
                            return;
                        }
                    }
                    else
                    {
                        return;
                    }
                }

                string query = report.reports_query;

                if (!OpenSQLConnection(_sqlConnection))
                {
                    return;
                }

                try
                {
                    //check for user in group
                    SqlCommand    sql_cm1 = null;
                    SqlDataReader sql_rd1 = null;

                    sql_cm1             = new SqlCommand();
                    sql_cm1.Connection  = _sqlConnection;
                    sql_cm1.CommandType = CommandType.Text;
                    sql_cm1.CommandText = query;
                    foreach (DataRow dr in _datatableReportsParameters.Rows)
                    {
                        SqlParameter param = new SqlParameter();
                        param.ParameterName = dr["Name"].ToString();
                        param.Value         = dr["Value"].ToString();
                        sql_cm1.Parameters.Add(param);
                    }
                    sql_rd1 = sql_cm1.ExecuteReader();
                    sql_rd1.Read();
                    if (sql_rd1.HasRows)
                    {
                        for (int i = 0; i < sql_rd1.FieldCount; i++)
                        {
                            Type dtType = Type.GetType("System.String");
                            try
                            {
                                dtType = sql_rd1[sql_rd1.GetName(i)].GetType();
                                if (dtType == Type.GetType("System.DBNull"))
                                {
                                    dtType = Type.GetType("System.String");
                                }
                            }
                            catch { }
                            dt.Columns.Add(sql_rd1.GetName(i), dtType);
                        }
                    }
                    else
                    {
                        for (int i = 0; i < sql_rd1.FieldCount; i++)
                        {
                            Type dtType = Type.GetType("System.String");
                            dt.Columns.Add(sql_rd1.GetName(i), dtType);
                        }
                    }
                    sql_rd1.Close();
                    sql_rd1 = sql_cm1.ExecuteReader();
                    while (sql_rd1.Read())
                    {
                        DataRow dr = dt.NewRow();
                        for (int i = 0; i < sql_rd1.FieldCount; i++)
                        {
                            dr[sql_rd1.GetName(i)] = sql_rd1[sql_rd1.GetName(i)];
                        }
                        dt.Rows.Add(dr);
                    }
                    sql_rd1.Close();

                    sql_rd1.Dispose();
                    sql_cm1.Dispose();
                }
                catch (Exception ex)
                {
                    dt.Columns.Clear();
                    dt.Columns.Add("Errors", Type.GetType("System.String"));
                    DataRow dr = dt.NewRow();
                    dr["Errors"] = ex.Message;
                    dt.Rows.Add(dr);
                }
                finally
                {
                    _sqlConnection.Close();
                }

                advancedDataGridView_main.CleanFilterAndSort();
                _mainBindingSource.DataSource = dt;
                for (int i = 0; i < advancedDataGridView_main.Columns.Count; i++)
                {
                    advancedDataGridView_main.Columns[i].AutoSizeMode = System.Windows.Forms.DataGridViewAutoSizeColumnMode.Fill;
                }
            }
        }