public async Task<IdentityResult> RegisterCustomerAsync(UserModel userModel, AppRole appRole = AppRole.customer) { var addToRoleResult = new IdentityResult(); // Add generate username to the model IdentityUser user = new IdentityUser { UserName = userModel.UserName, Email = userModel.EmailAddress, EmailConfirmed = true, PhoneNumber = userModel.PhoneNumber, PhoneNumberConfirmed = true, }; var result = await _userManager.CreateAsync(user, userModel.Password); //Role-user combination is managed as Contact-Role combination in ContactRole table //Create Role Admin if it does not exist var _role = await _roleManager.FindByNameAsync(appRole.ToString()); if (_role == null) { _role = new IdentityRole(appRole.ToString()); var roleresult = await _roleManager.CreateAsync(_role); } var rolesForUser = await _userManager.GetRolesAsync(user.Id); if (!rolesForUser.Contains(_role.Name)) { addToRoleResult = await _userManager.AddToRoleAsync(user.Id, _role.Name); } return addToRoleResult; }
/// <summary> /// Seeds the asynchronous. /// </summary> /// <param name="userManager">The user manager.</param> /// <param name="roleManager">The role manager.</param> /// <returns></returns> public static async Task SeedAsync(UserManager <ApplicationUser> userManager, RoleManager <AppRole> roleManager) { var defaultRole1 = new AppRole { Name = "System Administrator" }; var defaultRole2 = new AppRole { Name = "Culture Object Administrator" }; var defaultRole3 = new AppRole { Name = "Fun Zone Administrator" }; var defaultRole4 = new AppRole { Name = "Registered User" }; var defaultRole5 = new AppRole { Name = "Unregistered User" }; var defaultUser1 = new ApplicationUser { UserName = "******", Email = "*****@*****.**", EmailConfirmed = true, PhoneNumberConfirmed = true }; var defaultUser2 = new ApplicationUser { UserName = "******", Email = "*****@*****.**", EmailConfirmed = true, PhoneNumberConfirmed = true }; var defaultUser3 = new ApplicationUser { UserName = "******", Email = "*****@*****.**", EmailConfirmed = true, PhoneNumberConfirmed = true }; var defaultUser4 = new ApplicationUser { UserName = "******", Email = "*****@*****.**", EmailConfirmed = true, PhoneNumberConfirmed = true }; await roleManager.CreateAsync(defaultRole1); await roleManager.CreateAsync(defaultRole2); await roleManager.CreateAsync(defaultRole3); await roleManager.CreateAsync(defaultRole4); await roleManager.CreateAsync(defaultRole5); await userManager.CreateAsync(defaultUser1, "Password1"); await userManager.AddToRoleAsync(defaultUser1, defaultRole1.ToString()); await userManager.CreateAsync(defaultUser2, "Password2"); await userManager.AddToRoleAsync(defaultUser2, defaultRole2.ToString()); await userManager.CreateAsync(defaultUser3, "Password3"); await userManager.AddToRoleAsync(defaultUser3, defaultRole3.ToString()); await userManager.CreateAsync(defaultUser4, "Password4"); await userManager.AddToRoleAsync(defaultUser4, defaultRole4.ToString()); }
public static bool IsInRole(this IPrincipal user, AppRole appRole) { var roles = appRole.ToString().Split(',').Select(x => x.Trim()); foreach (var role in roles) { if (user.IsInRole(role)) return true; } return false; }
public static bool IsInRole(this IPrincipal user, AppRole appRole) { var roles = appRole.ToString().Split(',').Select(x => x.Trim()); foreach (var role in roles) { if (user.IsInRole(role)) { return(true); } } return(false); }
private async Task <AuthenticateResult> ManagerAuthorization(AppRole enumRole) { Manager user = null; try { var authHeader = AuthenticationHeaderValue.Parse(Request.Headers["Authorization"]); var credentialBytes = Convert.FromBase64String(authHeader.Parameter); var credentials = Encoding.UTF8.GetString(credentialBytes).Split(new[] { ':' }, 2); var username = credentials[0]; var query = new GetUserQuery <Manager>() { Login = username }; user = await queryExecutor.Execute(query); if (user == null) { return(AuthenticateResult.Fail("Resource does not exist")); } var password = passwordHasher.HashToCheck(credentials[1], user.Salt); if (user.Password != password) { return(AuthenticateResult.Fail("Wrong password")); } } catch { return(AuthenticateResult.Fail("Invalid Authorization Header")); } var claims = new[] { new Claim(ClaimTypes.NameIdentifier, user.Id.ToString()), new Claim(ClaimTypes.Name, user.Login), new Claim(ClaimTypes.Role, enumRole.ToString()), new Claim(ClaimTypes.UserData, user.Company.Id.ToString()) }; var identity = new ClaimsIdentity(claims, Scheme.Name); var principal = new ClaimsPrincipal(identity); var ticket = new AuthenticationTicket(principal, Scheme.Name); return(AuthenticateResult.Success(ticket)); }