public IActionResult Login(UserLoggingInBindingModel model)
        {
            if (this.User.IsAuthenticated)
            {
                return(this.RedirectToHome());
            }

            if (!this.IsValidModel(model))
            {
                return(this.BuildErrorView());
            }

            User user;

            using (this.Context)
            {
                user = this.Context.Users
                       .FirstOrDefault(u => u.Username == model.Username);
            }
            var passwordHash = PasswordUtilities.GetPasswordHash(model.Password);

            if (passwordHash != user.PasswordHash)
            {
                return(this.BuildErrorView());
            }

            this.SignIn(user.Username, user.Id);
            return(this.RedirectToHome());
        }
        public IActionResult Login(UserLoggingInBindingModel model)
        {
            if (this.User.IsAuthenticated)
            {
                return(this.RedirectToHome());
            }

            if (!this.IsValidModel(model))
            {
                this.ViewData.Data["error"] = "You have errors in your form.";
                return(this.View());
            }

            User user;

            using (this.Context)
            {
                user = this.Context.Users
                       .Include(u => u.Role)
                       .FirstOrDefault(u => u.Username == model.Username);
            }
            var passwordHash = PasswordUtilities.GetPasswordHash(model.Password);

            if (user == null || passwordHash != user.PasswordHash)
            {
                this.ViewData.Data["error"] = "Incorrect user or password.";
                return(this.View());
            }

            this.SignIn(user.Username, user.Id, new List <string>()
            {
                user.Role.Name
            });
            return(this.RedirectToHome());
        }
        public IActionResult Login(UserLoggingInBindingModel model)
        {
            if (this.User.IsAuthenticated)
            {
                return(this.RedirectToHome());
            }

            if (!this.IsValidModel(model))
            {
                this.BuildErrorView();
                return(this.View());
            }

            User user;

            using (this.Context)
            {
                user = this.Context.Users
                       .Include(u => u.Role)
                       .Where(u => u.Username == model.Username)
                       .FirstOrDefault();
            }

            if (user == null)
            {
                this.ViewData.Data["error"] = "Invalid username or password.";
                return(this.View());
            }

            var passwordHash = PasswordUtilities.GetPasswordHash(model.Password);

            if (user.PasswordHash != passwordHash)
            {
                this.ViewData.Data["error"] = "Invalid username or password.";
                return(this.View());
            }

            this.SignIn(user.Username, user.Id, new[] { user.Role.Name.ToString() });

            return(this.RedirectToHome());
        }