public ActionResult Login(LoginViewModel model, string returnUrl = "") { if (ModelState.IsValid) { ZUSR user = service.IntegrationAuthentication(model.UserName, model.Password, model.Functional); if (user != null) { WebCorePrincipalSerializeModel serializeModel = new WebCorePrincipalSerializeModel(); serializeModel.UserId = user.UserID; serializeModel.UserName = user.UserName; serializeModel.FullName = user.UserName; serializeModel.IsSysAdmin = false; string userData = JsonConvert.SerializeObject(serializeModel); FormsAuthenticationTicket authTicket = new FormsAuthenticationTicket( 1, user.UserName, DateTime.Now, DateTime.Now.AddMinutes(60), model.Remember, userData); string encTicket = FormsAuthentication.Encrypt(authTicket); HttpCookie faCookie = new HttpCookie(FormsAuthentication.FormsCookieName, encTicket); Response.Cookies.Add(faCookie); if (string.IsNullOrEmpty(returnUrl)) { return(RedirectToAction("Index", "Home")); } else { return(Redirect(returnUrl)); } } } ViewBag.FunctionList = new SelectList(itemService.GetItemByCode(Category.FUNCTIONS), "Code", "Name"); ModelState.AddModelError("", "UserId or Password is incorrect."); return(View(model)); }
protected void Application_PostAuthenticateRequest(Object sender, EventArgs e) { HttpCookie authCookie = Request.Cookies[FormsAuthentication.FormsCookieName]; if (authCookie != null && !string.IsNullOrEmpty(authCookie.Value)) { FormsAuthenticationTicket authTicket = FormsAuthentication.Decrypt(authCookie.Value); if (authTicket != null) { WebCorePrincipalSerializeModel serializeModel = JsonConvert.DeserializeObject <WebCorePrincipalSerializeModel>(authTicket.UserData); WebCorePrincipal newUser = new WebCorePrincipal(authTicket.Name); newUser.Id = serializeModel.UserId; newUser.UserId = serializeModel.UserName; newUser.FullName = serializeModel.FullName; newUser.IsSysAdmin = serializeModel.IsSysAdmin; newUser.roles = serializeModel.roles; HttpContext.Current.User = newUser; } } }