コード例 #1
0
        public ActionResult Login(ViewModels.UserLogin user)
        {
            if (!hasAccess())
            {
                return(new HttpNotFoundResult());
            }

            if (!ModelState.IsValid)
            {
                return(View());
            }

            var checkUser = getUser(user.Email);

            if (checkUser == null)
            {
                ModelState.AddModelError("Email", "Email does not exist.");
                return(View());
            }

            if (hashPassword(user.Password, checkUser.Salt) != checkUser.PasswordHash)
            {
                ModelState.AddModelError("Password", "Incorrect password.");
                return(View());
            }

            Session["userType"] = checkUser.AccountType;
            Session["userID"]   = checkUser.ID;

            if (Session["userType"].ToString() == "admin")
            {
                return(Redirect("/Admin/ChangeSystemParameters"));
            }
            return(Redirect("/User/MyProfile"));
        }
コード例 #2
0
        [HttpPost]//logiin
        public async Task <IActionResult> Login([FromBody] ViewModels.UserLogin user)
        {
            if (!ModelState.IsValid)
            {
                Dictionary <string, List <string> > errors = ModelState.ToDictionary(
                    kvp => kvp.Key,
                    kvp => kvp.Value.Errors.Select(e => e.ErrorMessage).ToList());
                return(BadRequest(new { errors }));
            }

            JwtSecurityToken jwtSecurityToken = await _sessionService.Login(user);

            if (jwtSecurityToken == null)
            {
                return(Unauthorized());
            }

            Response.Headers.Add("Authorization", new JwtSecurityTokenHandler().WriteToken(jwtSecurityToken));

            return(Ok());
            //return Ok(new
            //{
            //    access_token = new JwtSecurityTokenHandler().WriteToken(token),
            //    expires_in = DateTime.Now.AddMinutes(30),
            //    token_type = "bearer"
            //});
        }
コード例 #3
0
ファイル: Session.cs プロジェクト: ITProgram/RealEstate
        public async Task <JwtSecurityToken> Login(ViewModels.UserLogin user)
        {
            Models.User existingUser = await _context.Users.FirstOrDefaultAsync(u => u.Login == user.Login);

            if (existingUser != null && (new PasswordHasher <ViewModels.UserLogin>().VerifyHashedPassword(user, existingUser.Password, user.Password)) == PasswordVerificationResult.Success)
            {
                return(await CreateJWTToken(existingUser));
            }
            return(null);
        }