//public async Task<Cl_UserToReturn> Register(Cl_UserDetails userDto) //{ // return new Cl_UserToReturn // { // UserName = identityUser.UserName, // Email = identityUser.Email, // Roles = "User", // Message = "Đăng kí thành công" // }; //} public async Task <IEnumerable <Cl_UserToReturn> > GetListUsers() { var users = await userManager.Users.ToListAsync(); var userDtos = new List <Cl_UserToReturn>(); foreach (var user in users) { var roleNames = await userManager.GetRolesAsync(user); if (roleNames[0] == "User") { var userDto = new Cl_UserToReturn { UserName = user.UserName, Email = user.Email, Roles = roleNames[0] }; userDtos.Add(userDto); } } return(userDtos); }
public async Task <IActionResult> Login([FromBody] LoginCredentials credentials) { try { if (!ModelState.IsValid || credentials == null) { return(new BadRequestObjectResult(new { Message = "Vui lòng nhập tên tài khoản và mật khẩu" })); } var identityUser = await _userManager.FindByNameAsync(credentials.UserName); if (identityUser == null) { return(new BadRequestObjectResult(new { Message = "Sai tên tài khoản" })); } var result = _userManager.PasswordHasher.VerifyHashedPassword(identityUser, identityUser.PasswordHash, credentials.Password); if (result == PasswordVerificationResult.Failed) { return(new BadRequestObjectResult(new { Message = "Sai mật khẩu" })); } var roles = await _userManager.GetRolesAsync(identityUser); if (roles[0] != "User") { return(new BadRequestObjectResult(new { Message = "Đăng nhập thất bại" })); } var claims = new List <Claim> { new Claim(ClaimTypes.Email, identityUser.Email), new Claim(ClaimTypes.Name, identityUser.UserName), new Claim(ClaimTypes.Role, roles[0]) }; var claimsIdentity = new ClaimsIdentity( claims, CookieAuthenticationDefaults.AuthenticationScheme); await HttpContext.SignInAsync( CookieAuthenticationDefaults.AuthenticationScheme, new ClaimsPrincipal(claimsIdentity)); var userToReturn = new Cl_UserToReturn { UserId = identityUser.Id, UserName = identityUser.UserName, Address = identityUser.Address, PhoneNumber = identityUser.PhoneNumber, Email = identityUser.Email, Roles = roles[0], Message = "Đăng nhập thành công" }; return(Ok(userToReturn)); } catch (Exception ex) { return(BadRequest(ex.Message.ToString())); } }