Ejemplo n.º 1
0
        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");
        }
Ejemplo n.º 2
0
        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);
            }
        }