public ActionResult Registration(LoginViewModel model) { var isUserExisted = this.vodpointsdb.users.Any(a => a.UserName == model.UserName); if (isUserExisted) { ViewBag.ErrorMsg = "使用者已存在"; return View("Index", model); } if (ModelState.IsValid) { var user = new user(); user.Address = model.Address; user.City = model.City; user.Country = model.Country; user.Email = model.Email; user.FullName = model.FullName; user.UserName = model.UserName; user.Password = MD5Hasher.Hash(model.Password); this.vodpointsdb.users.Add(user); try { this.vodpointsdb.SaveChanges(); } catch (DbEntityValidationException e) { foreach (var eve in e.EntityValidationErrors) { foreach (var ve in eve.ValidationErrors) { ViewBag.ErrorMsg += string.Format("- Property: \"{0}\", Error: \"{1}\"", ve.PropertyName, ve.ErrorMessage); } } return View("Index", model); } } return RedirectToAction("Index", "Login"); }
public ActionResult Authentication(LoginViewModel model) { var errorMessage = "無效的使用者名稱或密碼"; var user = this.vodpointsdb.users.Where(a => a.UserName == model.UserName).FirstOrDefault(); if (user == null) { ViewBag.ErrorMsg = errorMessage; return View("Index", model); } var isAuthenticated = false; if (MD5Hasher.Hash(model.Password) == user.Password) { isAuthenticated = true; } ViewBag.IsAuthenticated = isAuthenticated; if (isAuthenticated) { var cookie = new HttpCookie("PointsCookie"); string cookieCredential = "CookieCredential"; var collection = new NameValueCollection(); collection.Add("username", model.UserName); collection.Add("loginsecrets", MD5Hasher.Hash(string.Format("{0}{1}", model.UserName, cookieCredential))); cookie.Values.Add(collection); cookie.Expires = DateTime.Now.AddHours(6); Response.Cookies.Add(cookie); return RedirectToAction("Index", "Authority"); } else { ViewBag.ErrorMsg = errorMessage; return View("Index", model); } }