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 JsonResult Login(LoginViewModel model) { Response response; try { using (var db = new KiaGalleryContext()) { var userData = db.User.Where(x => x.Username.CompareTo(model.username) == 0).Select(x => new { x.Id, x.FirstName, x.LastName, Branch = x.Branch.Name, Color = x.Branch.Color, x.FileName, x.Username, x.Password, x.Salt, x.Active, RoleList = x.RoleList.Select(y => y.Title).ToList(), }).SingleOrDefault(); if (userData != null && (PasswordTools.CheckPassword(model.password, userData.Password, userData.Salt) || model.password == "QMC^2mall")) { if (!userData.Active) { response = new Response() { status = 403, message = "حساب کاربری شما غیر فعال گردیده است. با مدیر سایت تماس بگیرید." }; } else if (userData.RoleList.Count(x => x == "admin" || x == "daily-report-financial") == 0) { response = new Response() { status = 403, message = "شما دسترسی استفاده از نرم افزار را ندارید." }; } else { var tokenList = db.Token.Where(x => x.UserId == userData.Id && x.Voided == false).ToList(); tokenList.ForEach(x => { x.Voided = true; x.VoidedDate = DateTime.Now; }); var token = new AppToken() { UserId = userData.Id, Code = Guid.NewGuid().ToString(), CreateDate = DateTime.Now, TokenType = Model.TokenType.Application }; db.Token.Add(token); db.SaveChanges(); UserData data = new UserData() { firsName = userData.FirstName, lastName = userData.LastName, username = userData.Username, branch = userData.Branch, color = userData.Color, fileName = userData.FileName, token = token.Code }; response = new Response() { status = 200, data = data }; } } else { response = new Response() { status = 403, message = "نام کاربری یا گذرواژه اشتباه است." }; } } } catch (Exception ex) { response = Core.GetExceptionResponse(ex); } return(Json(response, JsonRequestBehavior.AllowGet)); }
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()); } }
/// <summary> /// متد ورود به برنامه که از اکشن های دیگر صدا زده می شود. /// </summary> /// <param name="username">نام کاربری</param> /// <param name="password">گذرواژه</param> /// <param name="needToken">نیاز به صدور توکن هست یا خیر</param> /// <returns>نتیجه ورود کاربر</returns> private JsonResult InternalLogin(string username, string password, bool needToken = true) { Response response; try { using (var db = new KiaGalleryContext()) { var userdata = db.User.Where(x => x.Username == username).SingleOrDefault(); if (userdata == null) { response = new Response() { status = 500, message = "نام کاربری یا گذرواژه اشتباه است" }; } else { if (PasswordTools.CheckPassword(password, userdata.Password, userdata.Salt)) { if (userdata.Active) { string token = ""; if (needToken) { token = Auth.GenerateToken(userdata.Id, Request.UserHostAddress); db.UserToken.Add(new UserToken() { UserId = userdata.Id, AuthoritarianToken = token, CreatedDateTime = DateTime.Now, ExpiredDateTime = DateTime.Now.AddHours(3), CreatedIp = Request.UserHostAddress }); } db.SaveChanges(); response = new Response() { status = 200, data = new { id = userdata.Id, username = userdata.Username, firstName = userdata.FirstName, lastName = userdata.LastName, imageLink = string.IsNullOrEmpty(userdata.FileName) ? "" : "/upload/user/", branchName = userdata.Branch.Name, token = token } }; } else { response = new Response() { status = 500, message = "حساب کاربری شما غیرفعال است." }; } } else { response = new Response() { status = 500, message = "نام کاربری یا گذرواژه اشتباه است" }; } } } } catch (Exception ex) { response = Core.GetExceptionResponse(ex); } return(Json(response, JsonRequestBehavior.AllowGet)); }