Example #1
0
        protected void Application_PostAuthenticateRequest()
        {
            HttpCookie authCookie = Request.Cookies[FormsAuthentication.FormsCookieName];

            if (authCookie != null)
            {
                FormsAuthenticationTicket          authTicket     = FormsAuthentication.Decrypt(authCookie.Value);
                DrCleanCarePrincipalSerializeModel serializeModel = JsonConvert.DeserializeObject <DrCleanCarePrincipalSerializeModel>(authTicket.UserData);
                DrCleanCarePrinciple newUser = new DrCleanCarePrinciple(authTicket.Name);
                newUser.UserId           = serializeModel.UserId;
                newUser.FirstName        = serializeModel.FirstName;
                newUser.LastName         = serializeModel.LastName;
                newUser.Roles            = serializeModel.Roles;
                HttpContext.Current.User = newUser;
            }
        }
Example #2
0
        public ActionResult Login(LoginViewModel model)
        {
            /*
             * User submitted login info
             */
            try
            {
                // validate login info
                if (ModelState.IsValid == false)
                {
                    ModelState.AddModelError("", "Thông tin đăng nhập không hợp lệ");
                    return(View(model));
                }

                // get current user info
                User userInfo = db.Users
                                .Where(u => u.Username.Equals(model.UserName.Trim(), StringComparison.OrdinalIgnoreCase))
                                .FirstOrDefault();
                if (userInfo == null)
                {
                    ModelState.AddModelError("", "Đăng nhập thất bại!<p />Tên tài khoản/mật khẩu không đúng");
                    return(View(model));
                }

                // verify user name and password
                bool loginSuccess = SaltedHash.Verify(userInfo.Salt, userInfo.Password, model.Password);

                if (loginSuccess)
                {
                    // save authentication info
                    DrCleanCarePrincipalSerializeModel principal = new DrCleanCarePrincipalSerializeModel();
                    principal.UserId    = userInfo.UserId;
                    principal.FirstName = userInfo.FirstName;
                    principal.LastName  = userInfo.LastName;
                    principal.Roles     = userInfo.Roles.Select(r => r.RoleName).ToArray();

                    string principalJson             = JsonConvert.SerializeObject(principal);
                    FormsAuthenticationTicket ticket = new FormsAuthenticationTicket(
                        1,
                        userInfo.Username,
                        DateTime.Now,
                        DateTime.Now.AddHours(168), // 7 days
                        model.RememberMe,
                        principalJson);

                    string     encTicket = FormsAuthentication.Encrypt(ticket);
                    HttpCookie faCookie  = new HttpCookie(FormsAuthentication.FormsCookieName, encTicket);
                    Response.Cookies.Add(faCookie);

                    return(RedirectToAction("Index", "Admin"));
                }
                else
                {
                    ModelState.AddModelError(string.Empty, "Đăng nhập thất bại!<p />Tên tài khoản/mật khẩu không đúng");
                    return(View(model));
                }
            }
            catch (ArgumentException ex)
            {
                ModelState.AddModelError(string.Empty, ex.Message);
                return(View(model));
            }
            catch (NotImplementedException ex)
            {
                ModelState.AddModelError(string.Empty, ex.Message);
                return(View(model));
            }
        }