Ejemplo n.º 1
0
        public ActionResult Login(LoginViewModel model, string returnUrl)
        {
            if (!ModelState.IsValid)
            {
                return(View(model));
            }

            User user = _userManager.GetUser(model.Email, model.Password);

            if (user != null)
            {
                FormsAuthentication.SetAuthCookie(model.Email, false);

                #region claim

                //string jsonUserInfo = JsonConvert.SerializeObject(new AutenticateUser()
                //{
                //    Id = user.Id,
                //    FirstName = user.FirstName,
                //    Email = user.Email,
                //    Role = user.Role
                //});
                //var authTicket = new FormsAuthenticationTicket(1, user.FirstName, DateTime.Now, DateTime.Now.AddDays(5), false, jsonUserInfo);

                #endregion

                var    authTicket      = new FormsAuthenticationTicket(1, $"{user.Id}|{user.FirstName}|{user.Email}", DateTime.Now, DateTime.Now.AddDays(5), false, ((UserRole)user.Role).ToString());
                string encryptedTicket = FormsAuthentication.Encrypt(authTicket);
                var    authCookie      = new HttpCookie(FormsAuthentication.FormsCookieName, encryptedTicket);
                HttpContext.Response.Cookies.Add(authCookie);

                // insert userId into list of online users
                _userConnectionStorage.AddUser(user.Id);

                return(RedirectToAction("Index", "Lead"));
            }
            else
            {
                AddError("Invalid login attempt.");
                return(View(model));
            }
        }