Exemplo n.º 1
0
        public async Task <IActionResult> Login(AdminForLoginDto adminForLoginDto)
        {
            if (adminForLoginDto.Username == null || adminForLoginDto.Password == null)
            {
                return(BadRequest("Please login username and password!"));
            }
            var adminFromRepo = await _repo.Login(adminForLoginDto.Username.ToLower(), adminForLoginDto.Password);

            if (adminFromRepo == null)
            {
                return(BadRequest("Wrong username or passwords!"));
            }

            var claims = new[] {
                new Claim(ClaimTypes.NameIdentifier, adminFromRepo.Id.ToString()),
                new Claim(ClaimTypes.Surname, adminFromRepo.Name),
                new Claim(ClaimTypes.Name, adminFromRepo.AccountType)
            };

            var key             = new SymmetricSecurityKey(Encoding.UTF8.GetBytes(_config.GetSection("AppSettings:Token").Value));
            var creds           = new SigningCredentials(key, SecurityAlgorithms.HmacSha512Signature);
            var tokenDescriptor = new SecurityTokenDescriptor
            {
                Subject            = new ClaimsIdentity(claims),
                Expires            = DateTime.Now.AddDays(3),
                SigningCredentials = creds
            };
            var tokenHandler = new JwtSecurityTokenHandler();
            var token        = tokenHandler.CreateToken(tokenDescriptor);

            return(Ok(new
            {
                token = tokenHandler.WriteToken(token),
            }));
        }
Exemplo n.º 2
0
        public async Task <IActionResult> Index(LoginViewModel model)
        {
            var loginModel = new AdminForLoginDto
            {
                Email    = model.Email,
                Password = model.Password
            };

            var result = _authService.Login(loginModel);

            if (result.Success)
            {
                var claims = new List <Claim>
                {
                    new Claim(ClaimTypes.Email, model.Email)
                };
                var userIdentity = new ClaimsIdentity(claims, "login");

                ClaimsPrincipal principal = new ClaimsPrincipal(userIdentity);

                _httpContextAccessor.HttpContext.Session.SetString("username", result.Data.Username);
                _httpContextAccessor.HttpContext.Session.SetString("mail", result.Data.Email);
                _httpContextAccessor.HttpContext.Session.SetInt32("Id", result.Data.Id);

                await HttpContext.SignInAsync(principal);

                ViewData["mesaj"] = "";
                return(RedirectToAction("Index", "Admin"));
            }
            else
            {
                ViewData["mesaj"] = "Kullanıcı Adı veya Parola Hatalı !";
            }
            return(View());
        }
Exemplo n.º 3
0
        public async Task <ActionResult> Login([FromBody] AdminForLoginDto adminForLoginDto)
        {
            var admin = await _adminAuthRepository.Login(adminForLoginDto.Username, adminForLoginDto.Password);

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

            var tokenHandler = new JwtSecurityTokenHandler();
            var key          = Encoding.ASCII.GetBytes(_configuration.GetSection("AppSettings:Token").Value);


            var tokenDescriptor = new SecurityTokenDescriptor
            {
                Subject = new ClaimsIdentity(new Claim[]
                {
                    new Claim(ClaimTypes.NameIdentifier, admin.Id.ToString()),
                    new Claim(ClaimTypes.Name, admin.Username)
                }),
                Expires            = DateTime.Now.AddDays(1),
                SigningCredentials = new SigningCredentials(new SymmetricSecurityKey(key), SecurityAlgorithms.HmacSha512Signature)
            };



            var token       = tokenHandler.CreateToken(tokenDescriptor);
            var tokenString = tokenHandler.WriteToken(token);

            return(Ok(tokenString));
        }
Exemplo n.º 4
0
        public IDataResult <Admin> Login(AdminForLoginDto adminForLoginDto)
        {
            var userToCheck = _adminService.GetByMail(adminForLoginDto.Email);

            if (userToCheck == null)
            {
                return(new ErrorDataResult <Admin>(Messages.UserNotFound));
            }

            return(new SuccessDataResult <Admin>(userToCheck.Data, Messages.SuccessfulLogin));
        }
Exemplo n.º 5
0
 public ActionResult Index(AdminForLoginDto admin)
 {
     if ((adm.Login(admin)))
     {
         FormsAuthentication.SetAuthCookie(admin.Email, false);
         Session["Email"] = admin.Email.ToString();
         return(RedirectToAction("Index", "AdminCategory"));
     }
     else
     {
         return(View());
     }
 }
Exemplo n.º 6
0
        public bool Login(AdminForLoginDto admin)
        {
            var userToCheck = GetByMail(admin.Email);

            if (userToCheck == null)
            {
                return(false);
            }
            if (!HashingHelper.VerifyPasswordHash(admin.Password, userToCheck.PasswordHash, userToCheck.PasswordSalt) &&
                !HashingHelper.VerifyMailHash(admin.Email, userToCheck.AdminUserNameHash, userToCheck.AdminUserNameSalt))
            {
                return(false);
            }
            return(true);
        }
        public async Task <IActionResult> Login([FromBody] AdminForLoginDto adminForLoginDto)
        {
            var user = await _adminManager.FindByNameAsync(adminForLoginDto.Username);

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

            var result = await _signInManager.CheckPasswordSignInAsync(user, adminForLoginDto.Password, false);

            if (result.Succeeded)
            {
                return(Ok(new
                {
                    token = GenerateJwtToken(user).Result
                }));
            }

            return(Unauthorized());
        }
Exemplo n.º 8
0
        //FromBody to check informtion from the body
        public async Task <IActionResult> Register([FromBody] AdminForLoginDto adminForLoginDto)
        {
            if (!string.IsNullOrEmpty(adminForLoginDto.Username))
            {
                adminForLoginDto.Username = adminForLoginDto.Username.ToLower();
            }
            if (await _repo.UserExists(adminForLoginDto.Username))
            {
                ModelState.AddModelError("Username", "Username Already exists");
            }
            // validate request
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }
            var userToCreate = new Admin
            {
                Username = adminForLoginDto.Username
            };
            var createdUser = await _repo.Register(userToCreate, adminForLoginDto.Password);

            return(StatusCode(201));
        }
Exemplo n.º 9
0
        public async Task <IActionResult> Login([FromBody] AdminForLoginDto adminForLoginDto)
        {
            var userFromRepo = await _repo.Login(
                adminForLoginDto.Username.ToLower(),
                adminForLoginDto.Password);

            if (userFromRepo == null)
            {
                return(Unauthorized());
            }
            //generate token
            var tokenHandler   = new JwtSecurityTokenHandler();
            var key            = Encoding.ASCII.GetBytes(_config.GetSection("AppSetting:Token").Value);
            var tokenDecriptor = new SecurityTokenDescriptor
            {
                //This part is for payload of our token
                Subject = new ClaimsIdentity
                          (
                    new Claim[]
                {
                    new Claim(ClaimTypes.NameIdentifier, userFromRepo.Id.ToString()),
                    new Claim(ClaimTypes.Name, userFromRepo.Username)
                }

                          ),
                //Expires after 24 hours
                Expires            = DateTime.Now.AddDays(1),
                SigningCredentials = new
                                     SigningCredentials(new SymmetricSecurityKey(key),
                                                        SecurityAlgorithms.HmacSha512Signature)
            };
            var token       = tokenHandler.CreateToken(tokenDecriptor);
            var tokenString = tokenHandler.WriteToken(token);

            return(Ok(new { tokenString }));
        }