public async Task <ActionResult> Register(UserRegisterForm registerViewModels) { try { if (!ModelState.IsValid) { return(View()); } else { IdentityResultTHP infor = await this._identityService.Register(registerViewModels); if (infor.IsErrors) { foreach (var error in infor.Errors) { ModelState.AddModelError(string.Empty, error); } return(View()); } else { return(RedirectToAction(nameof(Login))); } } } catch (Exception ex) { throw ex; } }
public async Task <IdentityResultTHP> Login(string username, string password) { IdentityResultTHP result = new IdentityResultTHP(); try { User user = await _userService.FindAsync(username, password); if (user == null) { result.Errors.Add("Tên đăng nhập hoặc mật khẩu không đúng"); } else { ClaimsIdentity claimsIdentity = await _userService.CreateIdentityAsync(user, DefaultAuthenticationTypes.ApplicationCookie); result.Data = claimsIdentity; } } catch (Exception ex) { throw ex; } return(result); }
public async Task <IdentityResultTHP> Register(UserRegisterForm user, params string[] roles) { IdentityResultTHP result = new IdentityResultTHP(); using (TransactionScope scope = new TransactionScope(TransactionScopeOption.Required, TransactionScopeAsyncFlowOption.Enabled)) { try { IdentityResult createUser = await _userService.CreateAsync(new User { UserName = user.Username, PhoneNumber = user.Phone, Address = user.Address, FullName = user.FullName, DateOfBirth = user.DateOfBirth }, user.Password); if (!createUser.Succeeded) { result.Errors.AddRange(createUser.Errors); } else { foreach (var roleName in roles) { if (!_roleService.RoleExists(roleName)) { IdentityResult createRole = await this._roleService.CreateAsync(new Role { Name = roleName }); if (!createRole.Succeeded) { result.Errors.AddRange(createRole.Errors); } } User currentUser = await _userService.FindByNameAsync(user.Username); if (!_userService.IsInRole(currentUser.Id, roleName)) { await _userService.AddToRoleAsync(currentUser.Id, roleName); } } scope.Complete(); } } catch (Exception ex) { throw ex; } } return(result); }
public async Task <IdentityResultTHP> ChangePassword(string userId, string currentPassword, string newPassword) { IdentityResultTHP result = new IdentityResultTHP(); var user = await this._userService.ChangePasswordAsync(userId, currentPassword, newPassword); if (!user.Succeeded) { result.Errors.AddRange(user.Errors); } return(result); }
public async Task <ActionResult> Login(LoginViewModel user, string returnUrl) { try { if (ModelState.IsValid) { IdentityResultTHP result = await _identityService.Login(user.Username, user.Password); if (result.IsErrors) { foreach (var ele in result.Errors) { ModelState.AddModelError(string.Empty, ele); } } else { ClaimsIdentity claimsIdentity = result.Data as ClaimsIdentity; CurrentAuthenticationManager.SignOut(); CurrentAuthenticationManager.SignIn(new AuthenticationProperties() { IsPersistent = user.RememberMe, }, claimsIdentity); if (string.IsNullOrEmpty(returnUrl)) { return(RedirectToAction("ProfileDetails", "Profile")); } else { return(Redirect(returnUrl)); } } } else { ViewBag.ReturnUrl = returnUrl; return(View()); } } catch (Exception) { throw; } ViewBag.ReturnUrl = returnUrl; return(View()); }