Exemplo n.º 1
0
        public void CheckPassword_UserIsNull_ReturnFalse()
        {
            User user = null;

            var result = _sut.CheckPassword(user, "password");

            Assert.That(result, Is.False);
        }
Exemplo n.º 2
0
        public void ChangePasswordUT3()
        {
            string password      = "******";
            var    appUser       = userManager.FindById(UserID1);
            bool   passwordCheck = userManager.CheckPassword(appUser, password);

            Assert.AreEqual(true, passwordCheck);
        }
Exemplo n.º 3
0
        public void TestUserManager()
        {
            var          userManager = new UserManager(new TestPasswordGenerator());
            const string userId      = "user1";
            var          password    = userManager.CreateNewPassword(userId);

            var result = userManager.CheckPassword(userId, password);

            Assert.AreEqual(true, result);

            Thread.Sleep(TestPasswordGenerator.Lifetime);

            result = userManager.CheckPassword(userId, password);
            Assert.AreEqual(false, result);
        }
Exemplo n.º 4
0
        static void Main(string[] args)
        {
            var userName = "******";
            var password = "******";

            //using default usermanager and store
            //var userstore = new userstore<identityuser>();
            //var usermanager = new usermanager<identityuser>(userstore);

            //use custom user and userstore
            var userstore   = new CustomUserStore(new CustomuserDbContext());
            var userManager = new UserManager <CustomUser, int>(userstore);

            //Adding a user
            //var result = userManager.Create(new CustomUser {UserName=userName }, password);
            //Console.WriteLine("User created:" + result.Succeeded);

            //add claim to user
            var user = userManager.FindByName(userName);
            //var claimresult = userManager.AddClaim(user.Id, new System.Security.Claims.Claim("given_name", "wasim"));
            //Console.WriteLine("Claim added: " + claimresult.Succeeded);

            //check password
            var isMatch = userManager.CheckPassword(user, password);

            Console.WriteLine(isMatch);
        }
        protected override IPrincipal ValidateUser(string userName, string password)
        {
            var user = _userManager.FindByName(userName);

            if (user == null)
            {
                return(null);
            }

            if (_userManager.IsLockedOut(user.Id))
            {
                return(null);
            }

            var result = _userManager.CheckPassword(user, password);

            if (result)
            {
                _userManager.ResetAccessFailedCount(user.Id);
                return(new ClaimsPrincipal(_userManager.CreateIdentity(user, "HTTP Basic")));
            }
            if (_userManager.SupportsUserLockout)
            {
                _userManager.AccessFailed(user.Id);
            }

            return(null);
        }
Exemplo n.º 6
0
        static void Main(string[] args)
        {
            var username = "******";
            var password = "******";

            //var userStore = new UserStore<IdentityUser>(); can change to
            var userStore   = new CustomUserStore(new CustomUserDbContext());
            var userManager = new UserManager <CustomUser, int>(userStore);

            var createResult = userManager.Create(new CustomUser {
                UserName = username
            }, password);

            Console.WriteLine("created : {0}", createResult.Succeeded);

            var user = userManager.FindByName(username);

            //var claimResult = userManager.AddClaim(user.Id, new Claim("give_type", "give_value"));
            //Console.WriteLine("Claim:{0}", claimResult.Succeeded);
            //Console.ReadLine();

            var isMatch = userManager.CheckPassword(user, password);

            Console.WriteLine("Password Match: {0}", isMatch);
            Console.ReadLine();
        }
Exemplo n.º 7
0
        public ActionResult ChangePass(string oldp, string newp)
        {
            string               uid     = User.Identity.GetUserId();
            UserStore <Person>   store   = new UserStore <Person>(_uw.db);
            UserManager <Person> manager = new UserManager <Person>(store);
            Person               p       = manager.FindById(uid);
            bool isCorrect = manager.CheckPassword(p, oldp);

            if (isCorrect)
            {
                IdentityResult result = manager.ChangePassword(uid, oldp, newp);
                if (result.Succeeded)
                {
                    ViewBag.Success = true;
                }
                else
                {
                    ViewBag.Error = result.Errors;
                }
            }
            else
            {
                ViewBag.WrongPass = true;
            }
            return(View());
        }
Exemplo n.º 8
0
        public ActionResult ChangePassword(UserUpdatePassViewModel _userProfileModel)
        {
            if (ModelState.IsValid)
            {
                var userId = _userProfileModel.userId;

                if (UserManager.CheckPassword(UserManager.FindById(userId), _userProfileModel.oldPass))
                {
                    if (_userProfileModel.newPass == _userProfileModel.confirmnewPass)
                    {
                        UserManager.RemovePassword(userId);
                        UserManager.AddPassword(userId, _userProfileModel.newPass);

                        var _url = Url.Action("ChangePassPartialView", "Account", new { user_id = userId });

                        return(Json(new { success = true, url = _url }, JsonRequestBehavior.AllowGet));
                    }
                    else
                    {
                        return(Json(new { success = false, errmsg = "invalid password confirmation" },
                                    JsonRequestBehavior.AllowGet));
                    }
                }
                else
                {
                    return(Json(new { success = false }, JsonRequestBehavior.AllowGet));
                }
            }
            return(Json(new { success = false }, JsonRequestBehavior.AllowGet));
        }
Exemplo n.º 9
0
        public async Task <ActionResult> Login(LoginViewModel model, string returnUrl)
        {
            if (!ModelState.IsValid)
            {
                return(View(model));
            }

            var user = UserManager.FindByName(model.UserName);

            if (!UserManager.CheckPassword(user, model.Password))
            {
                user = null;
            }

            if (user != null)
            {
                await SignInAsync(user, model.RememberMe);

                return(RedirectToLocal(returnUrl));
            }
            else
            {
                ModelState.AddModelError("", "Invalid username or password.");
            }

            // If we got this far, something failed, redisplay form
            return(View(model));
        }
Exemplo n.º 10
0
        static void Main(string[] args)
        {
            var username = "******";
            var password = "******";

            var userStore   = new CustomUserStore(new CustomUserDbContext());
            var userManager = new UserManager <CustomUser, int>(userStore);

            //CREATING USER
            var creationResult = userManager.Create(new CustomUser {
                UserName = username
            }, password);

            Console.WriteLine("Created: {0}", creationResult.Succeeded);

            var user = userManager.FindByName(username);

            //ADDING CLAIM
            //var claimResult = userManager.AddClaim(user.Id, new Claim("given_name", "aayush"));
            //Console.WriteLine("Claim: {0}", claimResult.Succeeded);

            //VERIFYING PASSWORD
            var isMatch = userManager.CheckPassword(user, password);

            Console.WriteLine("Password Match: {0}", isMatch);
        }
Exemplo n.º 11
0
        private void btnCreate_Click(object sender, EventArgs e)
        {
            ApplicationUser user = userManager.FindByName(txtUserName.Text);

            if (user != null)
            {
                if (userManager.CheckPassword(user, txtPassword.Text))
                {
                    if (userManager.IsInRole(user.Id, "Admin"))
                    {
                        Thread th = new Thread(() => Application.Run(new mainForm()));
                        th.ApartmentState = ApartmentState.STA;
                        th.Start();
                        this.Close();
                    }
                    else
                    {
                        MessageBox.Show("Your Not Admin please contact your administration", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
                    }
                }
                else
                {
                    MessageBox.Show("The Password is Wrong", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
                }
            }
            else
            {
                MessageBox.Show("The UserName is Wrong ", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
        }
Exemplo n.º 12
0
        public ActionResult Login(LoginModel model)
        {
            if (ModelState.IsValid)
            {
                using (IdentityModels entities = new IdentityModels())
                {
                    var userStore = new UserStore <User>(entities);

                    var manager = new UserManager <User>(userStore);

                    var user = manager.FindByEmail(model.EmailAddress);

                    if (manager.CheckPassword(user, model.Password))
                    {
                        FormsAuthentication.SetAuthCookie(model.EmailAddress, true);
                        //Something similar to this should redirect the user to the Create Review page once they log in. TempData likely not the way to go, unless you perhaps
                        //changed it. Sam mentioned using Filters, global filters just something like that
                        //if (TempData["ReviewAttempted"] != null)
                        //{
                        //    return RedirectToAction("Create", "Reviews", new { name = TempData["ThisProductName"], id = TempData["ThisProductID"] });
                        //}
                        return(RedirectToAction("Index", "Home"));
                    }
                    ModelState.AddModelError("EmailAddress", "Invalid username and/or password.");
                }
            }
            return(View(model));
        }
Exemplo n.º 13
0
        public IHttpActionResult LogIn(Account loginAccount)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest("model state not valid"));
            }


            // Find user in user manager database
            var userStore   = new UserStore <IdentityUser>(new DataDbContext());
            var userManager = new UserManager <IdentityUser>(userStore);
            var user        = userManager.Users.FirstOrDefault(u => u.UserName == loginAccount.Email);

            if (user == null)
            {
                return(BadRequest());
            }

            if (!userManager.CheckPassword(user, loginAccount.Password))
            {
                return(Unauthorized());
            }

            // authenticate user and sign in
            var authManager    = Request.GetOwinContext().Authentication;
            var claimsIdentity = userManager.CreateIdentity(user, WebApiConfig.AuthenticationType);

            authManager.SignIn(new AuthenticationProperties {
                IsPersistent = true
            }, claimsIdentity);

            return(Ok());
        }
Exemplo n.º 14
0
        public ActionResult Login(LoginVm data)
        {
            if (ModelState.IsValid)
            {
                var context     = new AppDbContext();
                var userStore   = new UserStore <AppUser>(context);
                var userManager = new UserManager <AppUser>(userStore);

                var user = userManager.FindByName(data.UserName);
                if (user != null)
                {
                    if (userManager.CheckPassword(user, data.Password))
                    {
                        var identity = userManager.CreateIdentity(user, DefaultAuthenticationTypes.ApplicationCookie);

                        HttpContext.GetOwinContext().Authentication.SignIn(
                            new AuthenticationProperties
                        {
                            IsPersistent = true
                        }, identity);
                        return(RedirectToAction("RedirectPage"));
                    }
                    else
                    {
                        return(Redirect("#"));
                    }
                }
            }
            return(View());
        }
Exemplo n.º 15
0
        public void Login(Player player, string password)
        {
            UserManager <User> userManager = player.Server.UserManager;

            if (userManager != null)
            {
                if (player.Username == null)
                {
                    return;
                }

                User user = userManager.FindByName(player.Username);

                if (user == null)
                {
                    user = new User(player.Username);
                    if (!userManager.Create(user, password).Succeeded)
                    {
                        return;
                    }
                }

                if (userManager.CheckPassword(user, password))
                {
                    player.SendMessage("Login successful");
                }
                else
                {
                    player.SendMessage("Login failed");
                }
            }
        }
Exemplo n.º 16
0
        static void Main(string[] args)
        {
            string userName = "******";
            string password = "******";

            IUserStore <IdentityUser>  userStore   = new UserStore <IdentityUser>();
            UserManager <IdentityUser> userManager = new UserManager <IdentityUser>(userStore);

            //IdentityResult identityResult = userManager.Create(new IdentityUser(userName), password);
            //Console.WriteLine("Created user: "******"given_name", "Manikyarao"));
            bool isValidUser = userManager.CheckPassword(identityUser, password);

            Console.WriteLine("Is valid user? " + isValidUser);

            Console.WriteLine("Press any key to exit");
            Console.ReadKey();
        }
Exemplo n.º 17
0
        protected void btnSignin_Click(object sender, EventArgs e)
        {
            StatusMessage.Visible     = false;
            StatusMessage.Text        = "";
            userManager.UserValidator = new UserValidator <AppUser>(userManager);
            var  userEmail = userManager.FindByEmail(txtemail.Text);
            bool confirm   = userManager.CheckPassword(userEmail, txtpass.Text);

            if (userEmail == null || confirm == false)
            {
                StatusMessage.Visible = true;
                StatusMessage.Text    = "User not found  or Incorrect password was entered";
            }
            else
            {
                var authenticationManager = HttpContext.Current.GetOwinContext().Authentication;
                var userIdentity          = userManager.CreateIdentity(userEmail, DefaultAuthenticationTypes.ApplicationCookie);

                authenticationManager.SignIn(new AuthenticationProperties()
                {
                    IsPersistent = false
                }, userIdentity);
                Response.Redirect("/Pages/SubPages/ServiceProviderQueue.aspx");
            }
        }
Exemplo n.º 18
0
        public ApplicationUserIM Login(string email, string lozinka)
        {
            ApplicationUserIM retVal = new ApplicationUserIM();

            try
            {
                ApplicationUser user = userManager.FindByName(email);

                if (user != null && userManager.CheckPassword(user, lozinka))
                {
                    var roles = userManager.GetRoles(user.Id);
                    if (roles.Count > 0)
                    {
                        retVal.ime           = user.ime;
                        retVal.prezime       = user.prezime;
                        retVal.KorisnickoIme = user.UserName;
                        retVal.Uloga         = roles[0];
                        retVal.FirstLogin    = user.FirstLogin;
                    }
                }
            }catch (Exception e)
            {
                Console.WriteLine(e.Message);
            }

            return(retVal);
        }
Exemplo n.º 19
0
        // POST: api/User/Login
        public IActionResult Login([FromBody] LoginModel model)
        {
            var user = _userManager.GetByEmail(model.Email);

            if (user != null && _userManager.CheckPassword(user, model.Password))
            {
                var roles  = _roleManager.GetAllRolesByUserId(user.Id);
                var claims = new List <Claim>();
                foreach (var role in roles)
                {
                    claims.Add(new Claim(ClaimTypes.Role, role));
                }
                claims.Add(new Claim("UserId", user.Id.ToString()));

                var tokenDescriptor = new SecurityTokenDescriptor
                {
                    Subject            = new ClaimsIdentity(claims),
                    Expires            = DateTime.UtcNow.AddHours(1),
                    SigningCredentials = new SigningCredentials(
                        new SymmetricSecurityKey(Encoding.UTF8.GetBytes(_settings.JwtSecret)),
                        SecurityAlgorithms.HmacSha256Signature)
                };
                var tokenHandler  = new JwtSecurityTokenHandler();
                var securityToken = tokenHandler.CreateToken(tokenDescriptor);
                var token         = tokenHandler.WriteToken(securityToken);

                return(Ok(new { token, roles }));
            }
            else
            {
                return(BadRequest(new { message = "Incorrect Email or Password." }));
            }
        }
Exemplo n.º 20
0
        public ActionResult ChangePassword(ChangePasswordViewModel model)
        {
            if (ModelState.IsValid)
            {
                User user;
                using (var db = new DbContext())
                    user = db.Users.Find(User.Identity.GetUserId <int>());

                if (UserManager.CheckPassword(user, model.Password))
                {
                    UserManager.ChangePassword <User, int>(user.Id, model.Password, model.NewPassword);
                    TempData["Alerta"] = "Senha alterada com sucesso";
                    TempData["Classe"] = "green-alert";
                    return(RedirectToAction("Index", "Configuracao"));
                }
                else
                {
                    TempData["Alerta"] = "Senha incorreta";
                    TempData["Classe"] = "yellow-alert";
                }
            }
            else
            {
                TempData["Alerta"] = "Algo deu errado";
                TempData["Classe"] = "yellow-alert";
            }
            return(View());
        }
Exemplo n.º 21
0
        static void Main(string[] args)
        {
            var username = "******";
            var password = "******";

            var userStore   = new CustomUserStore(new CustomUserDbContext());
            var userManager = new UserManager <CustomUser, int>(userStore);

            var creationResult = userManager
                                 .Create(
                new CustomUser()
            {
                UserName = username
            },
                password);

            Console.WriteLine($"Creation: {creationResult.Succeeded}");

            //var userStore = new UserStore<IdentityUser>();
            //var userManager = new UserManager<IdentityUser>(userStore);
            //var creationResult = userManager.Create(new IdentityUser("*****@*****.**"), "password-1");
            //Console.WriteLine($"User Created: {creationResult.Succeeded}");
            var user = userManager.FindByName("*****@*****.**");
            //var claimResult = userManager.AddClaim(user.Id, new Claim("given_name", "Scott"));
            //Console.WriteLine($"Claim Created: {claimResult.Succeeded}");

            var isMatch = userManager.CheckPassword(user, password);

            Console.WriteLine($"Password Match: {isMatch}");
        }
Exemplo n.º 22
0
        public IHttpActionResult LogIn(Account account)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            // actually login
            var userStore   = new UserStore <IdentityUser>(new IdentityContext());
            var userManager = new UserManager <IdentityUser>(userStore);
            var user        = userManager.Users.FirstOrDefault(u => u.UserName == account.Email);


            if (user == null)
            {
                return(BadRequest());
            }

            if (!userManager.CheckPassword(user, account.Password))
            {
                return(Unauthorized());
            }

            var authManager    = Request.GetOwinContext().Authentication;
            var claimsIdentity = userManager.CreateIdentity(user, WebApiConfig.AuthenticationType);

            authManager.SignIn(new AuthenticationProperties {
                IsPersistent = true
            }, claimsIdentity);

            return(Ok());
        }
        static void Main(string[] args)
        {
            var username = "******";
            var password = "******";

            var userStore   = new CustomUserStore(new CustomUserDbContext());
            var userManager = new UserManager <CustomUser, int>(userStore);

            var creationResult = userManager.Create(new CustomUser {
                UserName = username
            }, password);

            Console.WriteLine("Created: {0}", creationResult.Succeeded);
            //Console.Read();

            var user = userManager.FindByName(username);
            //var claimResult = userManager.AddClaim(user.Id, new Claim("given_name", "Jack"));
            //Console.WriteLine("Claim: {0}", claimResult.Succeeded);
            //Console.Read();

            var isMatch = userManager.CheckPassword(user, password);

            Console.WriteLine("Password Match: {0}", isMatch);
            Console.Read();
        }
        public IHttpActionResult LogIn(User user)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest());
            }

            var store   = new UserStore <IdentityUser>(new IdentityDbContext <IdentityUser>("UserContext"));
            var manager = new UserManager <IdentityUser>(store);
            var account = manager.Users.FirstOrDefault(x => x.UserName == user.Name);

            if (account == null || !manager.CheckPassword(account, user.Password))
            {
                return(Unauthorized());
            }

            var authManager    = Request.GetOwinContext().Authentication;
            var claimsIdentity = manager.CreateIdentity(account, WebApiConfig.AuthenticationType);

            authManager.SignIn(new AuthenticationProperties {
                IsPersistent = true
            }, claimsIdentity);

            return(Ok(new Message {
                name = user.Name, message = "logged in"
            }));
        }
Exemplo n.º 25
0
        static void Main(string[] args)
        {
            var userName = "******";
            var password = "******";

            //var userStore = new UserStore<IdentityUser>();
            var userStore = new CustomUserStore(new CustomUserDbContext());

            //var userManager = new UserManager<IdentityUser>(userStore);
            var userManager = new UserManager <CustomUser, int>(userStore);

            //var identityResult = userManager.Create(new IdentityUser(userName), password);
            var identityResult = userManager.Create(new CustomUser {
                UserName = userName
            }, password);

            Console.WriteLine("User created: {0}", identityResult.Succeeded);

            var user = userManager.FindByName(userName);
            //var claimResult = userManager.AddClaim(user.Id, new Claim("given_name", "Topo"));
            //Console.WriteLine("Claim created: {0}", claimResult.Succeeded);

            var isMatch = userManager.CheckPassword(user, password);

            Console.WriteLine("Password Match: {0}", isMatch);

            Console.ReadLine();
        }
Exemplo n.º 26
0
        public ActionResult ChangePass(string oldp, string newp)
        {
            UserStore <Person>   store   = new UserStore <Person>(_uw.db);
            UserManager <Person> manager = new UserManager <Person>(store);

            string uId       = User.Identity.GetUserId();
            Person person    = _uw.db.Users.Find(uId);
            bool   isCorrect = manager.CheckPassword(person, oldp);

            if (isCorrect)
            {
                IdentityResult r = manager.ChangePassword(uId, oldp, newp);
                if (r.Succeeded)
                {
                    ViewBag.Success = true;
                }
                else
                {
                    ViewBag.Errors = r.Errors;
                }
            }
            else
            {
                ViewBag.WrongPassword = true;
            }

            return(View());
        }
Exemplo n.º 27
0
        public SignInStatus PasswordSignIn(string userName, string password, bool isPersistent, bool shouldLockout)
        {
            var user = UserManager.FindByName(userName);

            if (user == null)
            {
                return(SignInStatus.Failure);
            }
            if (UserManager.IsLockedOut(user.Id))
            {
                return(SignInStatus.LockedOut);
            }
            if (UserManager.CheckPassword(user, password))
            {
                return(SignInOrTwoFactor(user, isPersistent));
            }
            if (shouldLockout)
            {
                // If lockout is requested, increment access failed count which might lock out the user
                UserManager.AccessFailed(user.Id);
                if (UserManager.IsLockedOut(user.Id))
                {
                    return(SignInStatus.LockedOut);
                }
            }
            return(SignInStatus.Failure);
        }
Exemplo n.º 28
0
 public HttpResponseMessage ChangePassword(ManagerUserViewModel user) //cap nhat user
 {
     try
     {
         ApplicationUser userFromDb      = context.Users.Where(u => u.Id == user.UserId).FirstOrDefault();
         var             responseMessage = new { title = "Lỗi đổi mật khẩu", message = "Error", isSuccess = false };
         if (UserManager.CheckPassword(userFromDb, user.Password))
         {
             IdentityResult result = UserManager.ChangePassword(user.UserId, user.Password, user.NewPassword);
             context.SaveChanges();
             if (result.Succeeded == true)
             {
                 responseMessage = new { title = "Thành công", message = "Đổi mật khẩu thành công", isSuccess = true }
             }
             ;
             else
             {
                 responseMessage = new { title = "Lỗi đổi mật khẩu", message = "Mật khẩu phải bao gồm cả số, chữ thường và chữ in hoa", isSuccess = false }
             };
         }
         else
         {
             responseMessage = new { title = "Lỗi đổi mật khẩu", message = "Mật khẩu cũ không đúng", isSuccess = false };
         }
         return(Request.CreateResponse(HttpStatusCode.OK, responseMessage));
     }
     catch
     {
         return(Request.CreateResponse(HttpStatusCode.BadRequest));
     }
 }
Exemplo n.º 29
0
        public ActionResult ReplacePassword(UserModel model)
        {
            var message  = "message";
            var result   = "result";
            var checking = _userManager.CheckPassword(ActiveUser.UserName, model.OldPassword);

            if (checking != _resultHelper.Success())
            {
                result  = "Old password is invalid.";
                message = result;
            }
            else if (model != null && ModelState.IsValid)
            {
                result  = _userManager.ChangePassword(model);
                message = result;
            }
            else
            {
                message = ModelState.ModelErrors();
            }



            return(Json(new { message = message, result = result }));
        }
Exemplo n.º 30
0
        public IHttpActionResult Login(Models.User user)
        {
            if (ModelState.IsValid)
            {
                var userStore   = new UserStore <IdentityUser>(new UserDBContext());
                var userManager = new UserManager <IdentityUser>(userStore);
                var dbUser      = userManager.Users.FirstOrDefault(u => u.UserName == user.UserName);

                if (dbUser == null)
                {
                    return(Unauthorized()); // failed to login
                }

                if (userManager.CheckPassword(dbUser, user.Password))
                {
                    var authManager    = Request.GetOwinContext().Authentication;
                    var claimsIdentity = userManager.CreateIdentity(dbUser, "ApplicationCookie");

                    authManager.SignIn(new AuthenticationProperties {
                        IsPersistent = true
                    }, claimsIdentity);
                    return(Ok(dbUser.UserName));
                }
                logger.Info("Invalid password for user " + dbUser.UserName + ", returned Unauthorized.");
                return(Unauthorized());
            }
            return(BadRequest("User Model isn't valid."));
        }
 //checks the recieved username and password against the database to see if the identity is present and if the password mathces.
 public bool AuthenticateCompany(string userName, string password)
 {
     var ctx = new Context();
     var um = new UserManager<ApplicationUser>(new UserStore<ApplicationUser>(ctx));
     
     if (um.CheckPassword(um.FindByEmail(userName), password))
     {
         return true;
     }
     
     return false;
 }
Exemplo n.º 32
0
        bool ValidLogin(Login login)
        {
            UserStore<IdentityUser> userStore = new UserStore<IdentityUser>();
            UserManager<IdentityUser> userManager = new UserManager<IdentityUser>(userStore)
            {
                UserLockoutEnabledByDefault = true,
                DefaultAccountLockoutTimeSpan = new TimeSpan(0, 10, 0),
                MaxFailedAccessAttemptsBeforeLockout = 3
            };
            var user = userManager.FindByName(login.UserName);

            if (user == null)
                return false;

            // User is locked out.
            if (userManager.SupportsUserLockout && userManager.IsLockedOut(user.Id))
            {
                return false;
            }

            // Validated user was locked out but now can be reset.
            if (userManager.CheckPassword(user, login.Password))
            {
                if (userManager.SupportsUserLockout
                 && userManager.GetAccessFailedCount(user.Id) > 0)
                {
                    userManager.ResetAccessFailedCount(user.Id);
                }
            }

            // Login is invalid so increment failed attempts.
            else {
                bool lockoutEnabled = userManager.GetLockoutEnabled(user.Id);
                if (userManager.SupportsUserLockout && userManager.GetLockoutEnabled(user.Id))
                {
                    userManager.AccessFailed(user.Id);
                    return false;
                }
                CaptchaHelper captchaHelper = new CaptchaHelper();
                string captchaResponse = captchaHelper.CheckRecaptcha();
                if (captchaResponse != "Valid")
                {
                    ViewBag.ErrorResponse = "The captcha must be valid";

                }
            }
            return true;
        }
        bool ValidLogin(Login login)
        {
            UserStore<IdentityUser> userStore = new UserStore<IdentityUser>();
            UserManager<IdentityUser> userManager = new UserManager<IdentityUser>(userStore)
            {
                UserLockoutEnabledByDefault = true,
                DefaultAccountLockoutTimeSpan = new TimeSpan(0, 10, 0),
                MaxFailedAccessAttemptsBeforeLockout = 3
            };
            var user = userManager.FindByName(login.UserName);

            if (user == null)
                return false;

            // User is locked out. 
            if (userManager.SupportsUserLockout && userManager.IsLockedOut(user.Id))
                return false;

            // Validated user was locked out but now can be reset. 
            if (userManager.CheckPassword(user, login.Password)
                    && userManager.IsEmailConfirmed(user.Id))
            {
                if (userManager.SupportsUserLockout
                 && userManager.GetAccessFailedCount(user.Id) > 0)
                {
                    userManager.ResetAccessFailedCount(user.Id);
                }
            }
            // Login is invalid so increment failed attempts. 
            else {
                bool lockoutEnabled = userManager.GetLockoutEnabled(user.Id);
                if (userManager.SupportsUserLockout && userManager.GetLockoutEnabled(user.Id))
                {
                    userManager.AccessFailed(user.Id);
                    return false;
                }
            }
            return true;
        }