public ViewResult RemoveAppRoleFromUser() { AddAppRoleToUserModel model = new AddAppRoleToUserModel(); try { var azureClient = GraphAuthService.GetActiveDirectoryClient(ConfigHelper.UseApplicationPermissions); var apps = azureClient.Applications.ExecuteAsync().Result; var enumeratedApps = AzureADExtensions.EnumerateAllAsync(apps).Result; foreach (var app in enumeratedApps) { model.TenantApplications.Add(new SelectListItem() { Text = app.DisplayName, Value = app.DisplayName }); } model.isOk = true; } catch (Exception ex) { model.message = ex.Message + (ex.InnerException != null ? Environment.NewLine + ex.InnerException.Message : ""); } return(View("RemoveAppRoleFromUser", model)); }
public async Task <ActionResult> RemoveAppRoleFromUser(AddAppRoleToUserModel model) { List <ResultsItem> items = new List <ResultsItem>(); if (ModelState.IsValid) { try { var azureClient = GraphAuthService.GetActiveDirectoryClient(ConfigHelper.UseApplicationPermissions); string token = await GraphAuthService.GetTokenForApplication(ConfigHelper.UseApplicationPermissions); Tuple <bool, string, string, string, string> tup = await usersService.RemoveApplicationRoleFromUser(azureClient, token, ConfigHelper.AzureADGraphUrl, ConfigHelper.Tenant, model.AppName, model.UserEmailAddress, model.AppRoleName); // Get group members. var appRoleAssignmentsPaged = await azureClient.ServicePrincipals .GetByObjectId(tup.Item5) .AppRoleAssignedTo .ExecuteAsync(); var appRoleAssignments = await AzureADExtensions.EnumerateAllAsync(appRoleAssignmentsPaged); Guid approleid = Guid.Parse(tup.Item4); var users = appRoleAssignments .Where(a => a.Id == approleid && a.PrincipalType == "User") .Select(a => new { Id = a.PrincipalId.ToString(), Name = a.PrincipalDisplayName }) .ToList(); if (users != null) { foreach (var s in users) { items.Add(new ResultsItem() { Id = s.Id, Display = s.Name }); } } return(View("ListRoleMembers", new Tuple <bool, string, string, List <ResultsItem> >(tup.Item1, tup.Item2, model.AppRoleName, items))); } catch (Exception ex) { model.isOk = false; model.message = ex.Message + (ex.InnerException != null ? Environment.NewLine + ex.InnerException.Message : ""); } } return(View("RemoveAppRoleFromUser", model)); }