public ActionResult Login(MemberLoginVM model) { if (!ModelState.IsValid) { return(View(model)); } bool isValid = false; using (Db db = new Db()) { MemberFeatures passwordHash = new MemberFeatures(); string hashPassword = passwordHash.HashPassword(model.Password); if (db.Members.Any(x => x.Account.Equals(model.UserName) && x.Password.Equals(hashPassword))) { isValid = true; } if (!isValid) { ModelState.AddModelError("", "帳號或密碼錯誤"); return(View(model)); } else { FormsAuthentication.SetAuthCookie(model.UserName, model.RememberMe); return(Redirect(FormsAuthentication.GetRedirectUrl(model.UserName, model.RememberMe))); } } }
public ActionResult Register(MemberVM model) { if (!ModelState.IsValid) { return(View("register", model)); } if (!model.Password.Equals(model.ConfirmPassword)) { ModelState.AddModelError("", "密碼不一致"); return(View("register", model)); } using (Db db = new Db()) { if (db.Members.Any(x => x.Account.Equals(model.Account))) { ModelState.AddModelError("", "Account" + model.Account + "is taken!"); model.Account = ""; return(View("register", model)); } MemberFeatures passwordHash = new MemberFeatures(); string hashPassword = passwordHash.HashPassword(model.Password); MemberDTO memberDTO = new MemberDTO() { Name = model.Name, Email = model.Email, Account = model.Account, Password = hashPassword }; db.Members.Add(memberDTO); db.SaveChanges(); // Add User Role int id = memberDTO.UID; UserRoleDTO userRoleDTO = new UserRoleDTO() { UserId = id, RoleId = 2 }; db.UserRoles.Add(userRoleDTO); db.SaveChanges(); } return(Redirect("~/member/login")); }
public ActionResult MemberProfile(MemberProfileVM model) { if (!ModelState.IsValid) { return(View("MemberProfile", model)); } if (!string.IsNullOrWhiteSpace(model.Password)) { if (!model.Password.Equals(model.ConfirmPassword)) { ModelState.AddModelError("", "密碼不符"); return(View("MemberProfile", model)); } } using (Db db = new Db()) { string account = User.Identity.Name; // Check account is unique if (db.Members.Where(x => x.UID != model.UID).Any(x => x.Account == account)) { ModelState.AddModelError("", "帳號 " + model.Account + " 已存在!"); model.Account = ""; return(View("MemberProfile", model)); } // Edit MemberDTO dto = db.Members.Find(model.UID); MemberFeatures passwordHash = new MemberFeatures(); string hashPassword = passwordHash.HashPassword(model.Password); dto.Name = model.Name; dto.Email = model.Email; dto.Account = model.Account; if (!string.IsNullOrWhiteSpace(model.Password)) { dto.Password = hashPassword; } db.SaveChanges(); } return(Redirect("~/member/MemberProfile")); }