public async Task <ActionResult> Login(LoginViewModel model, string returnUrl) { if (!ModelState.IsValid) { return(View(model)); } // This doesn't count login failures towards account lockout // To enable password failures to trigger account lockout, change to shouldLockout: true var result = await SignInManager.PasswordSignInAsync(model.UserName, model.Password, model.RememberMe, shouldLockout : true); BitacoraLogueo bl = new BitacoraLogueo() { FechaLogueo = DateTime.Now, User = model.UserName, Resultado = result.ToString(), Tipo = "logIn" }; db.Entry(bl).State = System.Data.Entity.EntityState.Added; db.SaveChanges(); switch (result) { case SignInStatus.Success: ApplicationDbContext cont = new ApplicationDbContext(); var id = UserManager.FindByName(model.UserName).Id; ApplicationUser us = cont.Users.First(u => u.Id == id); List <string> rolesUsusario = new List <string>(); var rol = us.Roles.ToList(); foreach (IdentityUserRole role in us.Roles) { rolesUsusario.Add(role.RoleId); } Session["menuPrincipal"] = MenuPorUsuario(rolesUsusario); return(RedirectToLocal(returnUrl)); case SignInStatus.LockedOut: return(View("Lockout")); case SignInStatus.RequiresVerification: return(RedirectToAction("SendCode", new { ReturnUrl = returnUrl, RememberMe = model.RememberMe })); case SignInStatus.Failure: default: ModelState.AddModelError("", "Acceso Fallido."); return(View(model)); } }
public ActionResult LogOff() { var id = GetUserId(); var us = db.Users.Find(id); AuthenticationManager.SignOut(DefaultAuthenticationTypes.ApplicationCookie); BitacoraLogueo bl = new BitacoraLogueo() { FechaLogueo = DateTime.Now, User = us.UserName, Resultado = "logOff", Tipo = "logOff" }; db.Entry(bl).State = System.Data.Entity.EntityState.Added; db.SaveChanges(); return(RedirectToAction("Login", "Account")); }