Exemplo n.º 1
0
        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));
            }
        }
Exemplo n.º 2
0
        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"));
        }