public async Task Invoke(HttpContext httpContext, IServiceProvider serviceProvider, SignInManager <GiftSystemUser> signInManager) { var roleManager = serviceProvider.GetService <RoleManager <IdentityRole> >(); bool adminRoleExists = await roleManager.RoleExistsAsync("Admin"); if (!adminRoleExists) { await roleManager.CreateAsync(new IdentityRole("Admin")); } bool userRoleExists = await roleManager.RoleExistsAsync("User"); if (!userRoleExists) { await roleManager.CreateAsync(new IdentityRole("User")); } if (!signInManager.UserManager.Users.Any()) { GiftSystemUser user = new GiftSystemUser { UserName = "******", Email = "*****@*****.**", PhoneNumber = "0898412588" }; await signInManager.UserManager.CreateAsync(user, "123"); await signInManager.UserManager.AddToRoleAsync(user, "Admin"); } await this.next(httpContext); }
public async Task <Result> RegisterUser(string email, string password, string rePassword, string phoneNumber) { if (string.IsNullOrEmpty(email)) { return(new Result(string.Format(FieldIsRequiredMessage, email), false)); } if (string.IsNullOrEmpty(password)) { return(new Result(string.Format(FieldIsRequiredMessage, password), false)); } if (string.IsNullOrEmpty(rePassword)) { return(new Result(string.Format(FieldIsRequiredMessage, rePassword), false)); } if (password != rePassword) { return(new Result(PassowrdsDoNotMatchMessage, false)); } if (string.IsNullOrEmpty(phoneNumber)) { return(new Result(string.Format(FieldIsRequiredMessage, phoneNumber), false)); } var user = new GiftSystemUser { UserName = email, Email = email, PhoneNumber = phoneNumber }; var result = await this.usersRepository.CreateUser(user, password); if (!result.Succeeded) { return(new Result(RegisterFailedMessage, false)); } await this.usersRepository.AsignUserToRole(user); await this.usersRepository.SignInUser(user); return(new Result(RegisteredSuccessfullyMessage, true)); }
public async Task <IActionResult> OnPostAsync(string returnUrl = null) { returnUrl = "/Identity/Account/Login"; if (ModelState.IsValid) { var isRoot = !_userManager.Users.Any(); //TODO: add admin area; first seed the DB with the roles; inject roleManager var user = new GiftSystemUser { PhoneNumber = Input.PhoneNumber, UserName = Input.Username, Email = Input.Email }; var result = await _userManager.CreateAsync(user, Input.Password); if (result.Succeeded) { if (isRoot) { await _userManager.AddToRoleAsync(user, "Admin"); } else { await _userManager.AddToRoleAsync(user, "User"); } return(Redirect(returnUrl)); } foreach (var error in result.Errors) { ModelState.AddModelError(string.Empty, error.Description); } } return(Page()); }
public async Task AsignUserToRole(GiftSystemUser user) { await this.signInManager.UserManager.AddToRoleAsync(user, "User"); }
public async Task SignInUser(GiftSystemUser user) { await this.signInManager.SignInAsync(user, isPersistent : true); }
public async Task <IdentityResult> CreateUser(GiftSystemUser user, string password) { var result = await this.signInManager.UserManager.CreateAsync(user, password); return(result); }
public async Task UpdateUser(GiftSystemUser user) { this.db.Users.Update(user); await this.db.SaveChangesAsync(); }