static public Core.Models.User.UserItem Login(Core.Models.User.UserLoginItem user) { using (var db = new DataModel.Entities()) { var hashedPass = Hash(user.Password); var result = (from i in db.Users where (i.Name == user.UserNameMail || i.Mail == user.UserNameMail) && i.Password == hashedPass && i.Deleted == null select new Core.Models.User.UserItem() { Id = i.Id, FirstName = i.FirstName, LastName = i.LastName, Name = i.Name, Mail = i.Mail, Role = i.Role }).SingleOrDefault(); return(result); } }
public ActionResult Login(Core.Models.User.UserLoginItem user) { try { if (ModelState.IsValid) { var login = Core.Helpers.User.UserHelper.Login(user); if (login != null) { if (login.Role == Core.Enums.User.UserRole.Pending) { TempData["Error"] = Core.Strings.InvalidRole; return(View()); } var roles = Core.Helpers.User.UserHelper.GetRoles(login.Role); var ticket = new FormsAuthenticationTicket(0, login.Name, DateTime.Now, DateTime.Now.AddHours(2), false, Newtonsoft.Json.JsonConvert.SerializeObject(login)); var encyrptData = FormsAuthentication.Encrypt(ticket); Response.Cookies.Add(new HttpCookie(FormsAuthentication.FormsCookieName, encyrptData)); if (login.Role == Core.Enums.User.UserRole.Administrator) { return(RedirectToAction("Index", "Home", new { area = "Admin" })); } return(RedirectToAction("Index", "Home")); } else { TempData["Error"] = Core.Strings.UserNotFound; } } } catch (Exception ex) { TempData["Error"] = ex.Message; } return(View()); }