public ActionResult Login(LoginViewModel model, string ReturnUrl = "") { if (ModelState.IsValid) { UserLoginInfo _validateLoginUserData = _userService.GetUserByEmailandPassword(model.Email, model.Password); if (_validateLoginUserData != null) { //var roles = user.Roles.Select(m => m.RoleName).ToArray(); ApplicationPrincipalSerializeModel serializeModel = new ApplicationPrincipalSerializeModel(); serializeModel.UserID = _validateLoginUserData.UserID; serializeModel.UserName = _validateLoginUserData.UserName; serializeModel.Email = _validateLoginUserData.Email; serializeModel.FirstName = _validateLoginUserData.FirstName; serializeModel.LastName = _validateLoginUserData.LastName; serializeModel.MiddleName = _validateLoginUserData.MiddleName; serializeModel.DisplayName = _validateLoginUserData.DisplayName; serializeModel.DisplayID = _validateLoginUserData.DisplayID; serializeModel.Roles = _validateLoginUserData.Roles; string userData = JsonConvert.SerializeObject(serializeModel); FormsAuthenticationTicket authTicket = new FormsAuthenticationTicket( 1, _validateLoginUserData.Email, DateTime.Now, DateTime.Now.AddMinutes(FormsAuthentication.Timeout.TotalMinutes), model.RememberMe, userData); string encTicket = FormsAuthentication.Encrypt(authTicket); HttpCookie faCookie = new HttpCookie(FormsAuthentication.FormsCookieName, encTicket); Response.Cookies.Add(faCookie); if (!string.IsNullOrWhiteSpace(ReturnUrl) && Url.IsLocalUrl(ReturnUrl)) { return(Redirect(ReturnUrl)); } if (_validateLoginUserData.Roles.Contains(SystemConfig.SYSADMIN) || _validateLoginUserData.Roles.Contains(SystemConfig.SITEADMIN) || _validateLoginUserData.Roles.Contains(SystemConfig.APPMANAGER)) { return(RedirectToAction("Index", "Dashboard", new { Area = "Admin" })); } else if (_validateLoginUserData.Roles.Contains(SystemConfig.SYSNOTIFIER) || _validateLoginUserData.Roles.Contains(SystemConfig.USER)) { return(RedirectToAction("Index", "Dashboard", new { Area = "User" })); } else { return(RedirectToAction("Index", "Home")); } } ModelState.AddModelError("", "Invalid username or password!"); } return(View(model)); }
protected void Application_PostAuthenticateRequest(Object sender, EventArgs e) { HttpCookie authCookie = Request.Cookies[FormsAuthentication.FormsCookieName]; if (authCookie != null) { FormsAuthenticationTicket authTicket = FormsAuthentication.Decrypt(authCookie.Value); ApplicationPrincipalSerializeModel serializeModel = JsonConvert.DeserializeObject <ApplicationPrincipalSerializeModel>(authTicket.UserData); ApplicationPrincipal newUser = new ApplicationPrincipal(authTicket.Name); newUser.UserID = serializeModel.UserID; newUser.UserName = serializeModel.UserName; newUser.Email = serializeModel.Email; newUser.FirstName = serializeModel.FirstName; newUser.LastName = serializeModel.LastName; newUser.MiddleName = serializeModel.MiddleName; newUser.DisplayName = serializeModel.DisplayName; newUser.DisplayID = serializeModel.DisplayID; newUser.Roles = serializeModel.Roles; HttpContext.Current.User = newUser; } }