public List <User> GetUsersBySearchPattern(string searchPattern) { UPSClaimProviderLogger.LogDebug("UPSUsersDAL.GetUsersBySearchPattern invoked!"); string outputString; List <User> foundUsers = new List <User>(); try { SPSecurity.RunWithElevatedPrivileges(delegate() { UPSClaimProviderLogger.LogDebug("Running with elevated privileges"); // Access the User Profile Service try { SPServiceContext serviceContext = SPServiceContext.GetContext(SPServiceApplicationProxyGroup.Default, SPSiteSubscriptionIdentifier.Default); UPSClaimProviderLogger.LogDebug("Reference to SPServiceContext obtained"); UserProfileManager userProfileManager = new UserProfileManager(serviceContext); UPSClaimProviderLogger.LogDebug("Reference to UserProfileManager obtained"); ProfileBase[] searchResults = userProfileManager.Search(searchPattern); UPSClaimProviderLogger.LogDebug($"searchResults.Length: {searchResults.Length}"); outputString = searchResults.Aggregate("", (result, item) => String.Concat(result, "User display name: ", item.DisplayName, "; ")); UPSClaimProviderLogger.LogDebug(outputString); Array.ForEach(searchResults, (profileBaseItem) => { UserProfile item = (UserProfile)profileBaseItem; User user = UserProfileToUser(item); outputString = $"Retrieved user properties - Email: {user.Email}, Username: {user.Username}, Firstname: {user.Firstname}, Lastname: {user.Lastname}, Department: {user.Department}, JobTitle: {user.JobTitle}"; UPSClaimProviderLogger.LogDebug(outputString); foundUsers.Add(user); }); } catch (System.Exception e) { UPSClaimProviderLogger.LogError(e.Message); } }); } catch (System.Exception e) { UPSClaimProviderLogger.LogError($"Error while trying to elevate privileges: {e.Message}"); }; return(foundUsers); }
// Get the first TrustedLoginProvider associated with current claim provider public static SPTrustedLoginProvider GetSPTrustAssociatedWithCP(string ProviderInternalName) { var lp = SPSecurityTokenServiceManager.Local.TrustedLoginProviders.Where(x => String.Equals(x.ClaimProviderName, ProviderInternalName, StringComparison.OrdinalIgnoreCase)); if (lp != null && lp.Count() == 1) { return(lp.First()); } if (lp != null && lp.Count() > 1) { UPSClaimProviderLogger.LogError(String.Format("[{0}] Claims provider {0} is associated to multiple SPTrustedIdentityTokenIssuer, which is not supported because at runtime there is no way to determine what TrustedLoginProvider is currently calling", ProviderInternalName)); return(null); } UPSClaimProviderLogger.LogError(String.Format("[{0}] Claims provider {0} is not associated with any SPTrustedIdentityTokenIssuer. Set property ClaimProviderName with PowerShell cmdlet Get-SPTrustedIdentityTokenIssuer to create association.", ProviderInternalName)); return(null); }
protected override void FillResolve(Uri context, string[] entityTypes, SPClaim resolveInput, List <Microsoft.SharePoint.WebControls.PickerEntity> resolved) { UPSClaimProviderLogger.LogDebug("FillResolve type2 invoked!"); string outputString; outputString = $"resolveInput - "; outputString += $"ClaimType: {resolveInput.ClaimType}; "; outputString += $"OriginalIssuer: {resolveInput.OriginalIssuer}; "; outputString += $"Value: {resolveInput.Value}; "; outputString += $"ValueType: {resolveInput.ValueType}; "; UPSClaimProviderLogger.LogDebug(outputString); UPSClaimProviderLogger.LogDebug($"SPTrustedIdentityTokenIssuerName: {SPTrustedIdentityTokenIssuerName}"); if (!resolveInput.OriginalIssuer.ToLower().Contains(SPTrustedIdentityTokenIssuerName.ToLower())) { return; } SPClaimProviderManager cpm = SPClaimProviderManager.Local; string accountName = cpm.EncodeClaim(resolveInput); User foundUser = usersDAL.GetUserByAccountName(accountName); if (foundUser == null) { UPSClaimProviderLogger.LogError($"usersDAL.GetUserByAccountName(accountName) returned null! Error performing the final resolving of the user in FillResolve type2"); return; } ; UPSClaimProviderLogger.LogDebug($"foundUser.Email: {foundUser.Email}"); PickerEntity entity = GetPickerEntity(foundUser); resolved.Add(entity); UPSClaimProviderLogger.LogDebug($"Added PickerEntity to resolved with Claim - Claim.Value: {entity.Claim.Value}, Claim.ClaimType: {entity.Claim.ClaimType}, Claim.OriginalIssuer: {entity.Claim.OriginalIssuer}"); }
public User GetUserByAccountName(string accountName) { UPSClaimProviderLogger.LogDebug("UPSUsersDAL.GetUserByAccountName invoked!"); UPSClaimProviderLogger.LogDebug($"accountName: {accountName}"); User foundUser = null; try { SPSecurity.RunWithElevatedPrivileges(delegate() { UPSClaimProviderLogger.LogDebug("Running with elevated privileges"); // Access the User Profile Service try { SPServiceContext serviceContext = SPServiceContext.GetContext(SPServiceApplicationProxyGroup.Default, SPSiteSubscriptionIdentifier.Default); UPSClaimProviderLogger.LogDebug("Reference to SPServiceContext obtained"); UserProfileManager userProfileManager = new UserProfileManager(serviceContext); UPSClaimProviderLogger.LogDebug("Reference to UserProfileManager obtained"); UserProfile userProfile = userProfileManager.GetUserProfile(accountName); UPSClaimProviderLogger.LogDebug($"userProfile: {userProfile}"); foundUser = UserProfileToUser(userProfile); } catch (System.Exception e) { UPSClaimProviderLogger.LogError(e.Message); } }); } catch (System.Exception e) { UPSClaimProviderLogger.LogError($"Error while trying to elevate privileges: {e.Message}"); }; return(foundUser); }