public IActionResult Access([FromBody] LoginModel loginModel) { //verifica se usuário existe, se sim gera o token if (!ModelState.IsValid) { throw new ModelException(ModelState); } var userFromDb = _userRepository.GetByUsername(loginModel.Username); var password = PasswordEncryptator.Encrypit(loginModel.Password); if (userFromDb == null || userFromDb.Password != password) { throw new ErrorException("Username or Password incorrect."); } //This is just an example of how to SingIn using cookie atuh mode. //var claims = new List<Claim> //{ // new Claim(ClaimTypes.Name, userFromDb.Username), // new Claim(ClaimTypes.GivenName, userFromDb.Name), // new Claim(ClaimTypes.Role, userFromDb.Role.ToDescription()) //}; //var claimsIdentity = new ClaimsIdentity(claims, CookieAuthenticationDefaults.AuthenticationScheme); //HttpContext.SignInAsync(new ClaimsPrincipal(claimsIdentity)); string token = TokenGenerator.Generate(userFromDb.Username, userFromDb.Role.ToString()); return(Ok(CreateUserLogged(userFromDb, token))); }
public IActionResult Update([FromBody] UserRegisterModel userRegister) { if (!ModelState.IsValid) { throw new ModelException(ModelState); } string username = HttpContext.User.Identity.Name; var user = _userRepository.GetByUsername(username); if (user == null) { throw new ErrorException(string.Format("User {0} not found.", username)); } using (var unit = UnitOfWork.Start(HttpContext.RequestServices.GetService <ISessionFactoryInfra>())) { user.Name = userRegister.Name; if (userRegister.Password != EncrypedForDisplay) { user.Password = PasswordEncryptator.Encrypit(userRegister.Password); } unit.Commit(); } return(Ok()); }
public IActionResult Create([FromBody] UserRegisterModel model) { if (!ModelState.IsValid) { throw new ModelException(ModelState); } using (var unit = UnitOfWork.Start(HttpContext.RequestServices.GetService <ISessionFactoryInfra>())) { if (_userRepository.VerifyUsernameExists(model.Username)) { throw new ErrorException("Username already exists."); } var user = new User(); user.Name = model.Name; user.Username = model.Username; user.Role = model.Role; user.Password = PasswordEncryptator.Encrypit(model.Password); _userRepository.SaveOrUpdate(user); unit.Commit(); return(Ok()); } }
public IActionResult Access([FromBody] LoginModel loginModel) { //verifica se usuário existe, se sim gera o token if (!ModelState.IsValid) { throw new ModelException(ModelState); } var userFromDb = _userRepository.GetByUsername(loginModel.Username); var password = PasswordEncryptator.Encrypit(loginModel.Password); if (userFromDb == null || userFromDb.Password != password) { throw new ErrorException("Username or Password incorrect."); } string token = TokenGenerator.Generate(userFromDb.Username, userFromDb.Role.ToString()); return(Ok(CreateUserLogged(userFromDb, token))); }
public IActionResult Create([FromBody] UserRegisterModel model) { if (!ModelState.IsValid) { throw new ModelException(ModelState); } if (_userRepository.VerifyUsernameExists(model.Username)) { throw new ErrorException("Username already exists."); } var user = new User(); user.Name = model.Name; user.Username = model.Username; user.Role = model.Role; user.Password = PasswordEncryptator.Encrypit(model.Password); _userRepository.SaveOrUpdate(user); return(Ok()); }
public IActionResult Update([FromBody] UserRegisterModel userRegister) { if (!ModelState.IsValid) { throw new ModelException(ModelState); } string username = HttpContext.User.Identity.Name; var user = _userRepository.GetByUsername(username); if (user == null) { throw new ErrorException(string.Format("User {0} not found.", username)); } user.Name = userRegister.Name; if (userRegister.Password != EncrypedForDisplay) { user.Password = PasswordEncryptator.Encrypit(userRegister.Password); } return(Ok()); }