private ConsolidatedResult CreateUniqueResult(string email, string connectionName) { var claimAttribute = new ClaimAttribute { ClaimEntityType = SPClaimEntityTypes.User, PeoplePickerAttributeDisplayName = connectionName, PeoplePickerAttributeHierarchyNodeId = connectionName }; var user = new Auth0.User { Email = email, Name = string.Empty, Picture = string.Empty, Identities = new List <Identity> { new Identity { Connection = connectionName, IsSocial = this.IsSocialConnection(connectionName) } } }; return(new ConsolidatedResult { Attribute = claimAttribute, Auth0User = user, PickerEntity = this.GetPickerEntity(user, SPClaimEntityTypes.User) }); }
protected virtual PickerEntity GetPickerEntity(Auth0.User auth0User, string claimEntityType) { PickerEntity pe = CreatePickerEntity(); SPClaim claim = null; if (claimEntityType == SPClaimEntityTypes.User) { claim = new SPClaim( this.identifierClaimType, string.IsNullOrEmpty(this.auth0Config.IdentifierUserField) || this.auth0Config.IdentifierUserField == "Email" ? auth0User.UniqueEmail() : Utils.GetPropValue(auth0User, this.auth0Config.IdentifierUserField).ToString(), Microsoft.IdentityModel.Claims.ClaimValueTypes.String, SPOriginalIssuers.Format(SPOriginalIssuerType.TrustedProvider, this.associatedSPTrustedLoginProvider.Name)); var displayText = !string.IsNullOrEmpty(auth0User.FamilyName) && !string.IsNullOrEmpty(auth0User.GivenName) ? string.Format("{0} {1}", auth0User.GivenName, auth0User.FamilyName) : auth0User.Name; pe.DisplayText = !string.IsNullOrEmpty(displayText) ? string.Format("{0} ({1})", displayText, auth0User.Email) : auth0User.Email; pe.Description = string.Format( "Email: {0}; Name: {1}", auth0User.Email, auth0User.Name); pe.EntityType = SPClaimEntityTypes.User; pe.EntityData[PeopleEditorEntityDataKeys.DisplayName] = displayText; pe.EntityData[PeopleEditorEntityDataKeys.Email] = auth0User.Email; pe.EntityData["Picture"] = auth0User.Picture; } else if (claimEntityType == SPClaimEntityTypes.FormsRole) { claim = new SPClaim( ConnectionClaimType, auth0User.Identities.First().Connection, Microsoft.IdentityModel.Claims.ClaimValueTypes.String, SPOriginalIssuers.Format(SPOriginalIssuerType.TrustedProvider, this.associatedSPTrustedLoginProvider.Name)); pe.DisplayText = string.Format( "All Users ({0})", auth0User.Identities.First().Connection); pe.Description = string.Format( "[{0}] All Users from '{1}'", ProviderInternalName, auth0User.Identities.First().Connection); pe.EntityType = SPClaimEntityTypes.FormsRole; } pe.Claim = claim; pe.IsResolved = true; pe.EntityGroupName = this.pickerEntityGroupName; return(pe); }
/// <summary> /// Greate the nodes in the People Picker representing all connections. /// </summary> /// <param name="selectedNode"></param> /// <returns></returns> private IEnumerable <ConsolidatedResult> CreatePeoplePickerConnectionNodes(string selectedNode) { var identities = new List <Identity>(); // Get a list of all connections. var connections = this.GetConnections(selectedNode); foreach (var connection in connections) { identities.Add(new Identity { Connection = connection.Name, IsSocial = this.IsSocialConnection(connection.Name) }); } // Add all connections as identities. var results = new List <ConsolidatedResult>(); foreach (var identity in identities) { var user = new Auth0.User { Identities = new List <Identity> { identity } }; results.Add(new ConsolidatedResult { Attribute = new ClaimAttribute { ClaimEntityType = SPClaimEntityTypes.FormsRole, PeoplePickerAttributeDisplayName = identity.Connection, PeoplePickerAttributeHierarchyNodeId = identity.Connection }, User = user, PickerEntity = this.GetPickerEntity(user, SPClaimEntityTypes.FormsRole) }); } return(results); }
private IEnumerable<ConsolidatedResult> CreateAllUsersResults(string selectedNode) { var results = new List<ConsolidatedResult>(); var identities = new List<Identity>(); var connections = this.GetConnections(selectedNode); foreach (var connection in connections) { identities.Add(new Identity { Connection = connection.Name, IsSocial = this.IsSocialConnection(connection.Name) }); } foreach (var identity in identities) { var claimAttribute = new ClaimAttribute { ClaimEntityType = SPClaimEntityTypes.FormsRole, PeoplePickerAttributeDisplayName = identity.Connection, PeoplePickerAttributeHierarchyNodeId = identity.Connection }; var user = new Auth0.User { Identities = new List<Identity> { identity } }; results.Add(new ConsolidatedResult { Attribute = claimAttribute, Auth0User = user, PickerEntity = this.GetPickerEntity(user, SPClaimEntityTypes.FormsRole) }); } return results; }
private ConsolidatedResult CreateUniqueResult(string email, string connectionName) { var claimAttribute = new ClaimAttribute { ClaimEntityType = SPClaimEntityTypes.User, PeoplePickerAttributeDisplayName = connectionName, PeoplePickerAttributeHierarchyNodeId = connectionName }; var user = new Auth0.User { Email = email, Name = string.Empty, Picture = string.Empty, Identities = new List<Identity> { new Identity { Connection = connectionName, IsSocial = this.IsSocialConnection(connectionName) } } }; return new ConsolidatedResult { Attribute = claimAttribute, Auth0User = user, PickerEntity = this.GetPickerEntity(user, SPClaimEntityTypes.User) }; }
protected override void FillResolve(Uri context, string[] entityTypes, SPClaim resolveInput, List<PickerEntity> resolved) { Auth0LoggingService.Write("FillResolve input: {0}", resolveInput != null ? resolveInput.ClaimType + "/" + resolveInput.Value : "empty"); if (!this.SetSPTrustInCurrentContext(context)) { Auth0LoggingService.Write("FillResolve: SetSPTrustInCurrentContext=false."); return; } if (!String.Equals(resolveInput.OriginalIssuer, SPOriginalIssuers.Format(SPOriginalIssuerType.TrustedProvider, this.associatedSPTrustedLoginProvider.Name), StringComparison.OrdinalIgnoreCase)) { Auth0LoggingService.Write("FillResolve: Original issuers don't match, {0} != {1}.", resolveInput.OriginalIssuer, SPOriginalIssuers.Format(SPOriginalIssuerType.TrustedProvider, this.associatedSPTrustedLoginProvider.Name)); return; } SPSecurity.RunWithElevatedPrivileges(delegate { var input = resolveInput.Value.Contains(IdentifierValuesSeparator) ? resolveInput.Value.Split(IdentifierValuesSeparator)[1] : resolveInput.Value; var connectionName = resolveInput.Value.Contains(IdentifierValuesSeparator) ? resolveInput.Value.Split(IdentifierValuesSeparator)[0] : string.Empty; var consolidatedResults = this.ResolveInputBulk(input, connectionName); if (consolidatedResults != null && consolidatedResults.Count > 0) { resolved.Add(consolidatedResults.ElementAt(0).PickerEntity); return; } if (resolveInput.ClaimType == ConnectionClaimType) { var user = new Auth0.User { Identities = new List<Identity> { new Identity { Connection = resolveInput.Value } } }; resolved.Add(this.GetPickerEntity(user, SPClaimEntityTypes.FormsRole)); } else if (resolveInput.ClaimType == RoleClaimType) { resolved.Add(this.GetRolePickerEntity(resolveInput.Value)); } else if (this.alwaysResolveValue) { var user = new Auth0.User { Email = input, Name = string.Empty, Picture = string.Empty, Identities = new List<Identity> { new Identity { Connection = connectionName } } }; resolved.Add(this.GetPickerEntity(user, SPClaimEntityTypes.User)); } }); }
public static string UniqueEmail(this Auth0.User user) { return(user.Email != null ? user.Email : user.UserId.Split('|')[1]); }
protected override void FillResolve(Uri context, string[] entityTypes, SPClaim resolveInput, List <PickerEntity> resolved) { Auth0LoggingService.Write("FillResolve input: {0}", resolveInput != null ? resolveInput.ClaimType + "/" + resolveInput.Value : "empty"); if (!this.SetSPTrustInCurrentContext(context)) { Auth0LoggingService.Write("FillResolve: SetSPTrustInCurrentContext=false."); return; } if (!String.Equals(resolveInput.OriginalIssuer, SPOriginalIssuers.Format(SPOriginalIssuerType.TrustedProvider, this.associatedSPTrustedLoginProvider.Name), StringComparison.OrdinalIgnoreCase)) { Auth0LoggingService.Write("FillResolve: Original issuers don't match, {0} != {1}.", resolveInput.OriginalIssuer, SPOriginalIssuers.Format(SPOriginalIssuerType.TrustedProvider, this.associatedSPTrustedLoginProvider.Name)); return; } SPSecurity.RunWithElevatedPrivileges(delegate { var input = resolveInput.Value.Contains(IdentifierValuesSeparator) ? resolveInput.Value.Split(IdentifierValuesSeparator)[1] : resolveInput.Value; var connectionName = resolveInput.Value.Contains(IdentifierValuesSeparator) ? resolveInput.Value.Split(IdentifierValuesSeparator)[0] : string.Empty; var consolidatedResults = this.ResolveInputBulk(input, connectionName); if (consolidatedResults != null && consolidatedResults.Count > 0) { resolved.Add(consolidatedResults.ElementAt(0).PickerEntity); return; } if (resolveInput.ClaimType == ConnectionClaimType) { var user = new Auth0.User { Identities = new List <Identity> { new Identity { Connection = resolveInput.Value } } }; resolved.Add(this.GetPickerEntity(user, SPClaimEntityTypes.FormsRole)); } else if (resolveInput.ClaimType == RoleClaimType) { resolved.Add(this.GetRolePickerEntity(resolveInput.Value)); } else if (this.alwaysResolveValue) { var user = new Auth0.User { Email = input, Name = string.Empty, Picture = string.Empty, Identities = new List <Identity> { new Identity { Connection = connectionName } } }; resolved.Add(this.GetPickerEntity(user, SPClaimEntityTypes.User)); } }); }
protected override void FillResolve(Uri context, string[] entityTypes, SPClaim resolveInput, List <PickerEntity> resolved) { logger.FillResolve(context, resolveInput); // Not in context. if (!this.SetLoginProviderForCurrentContext(context)) { logger.FillResolveNotInContext(context); return; } // Issuer mismatch. if (!String.Equals(resolveInput.OriginalIssuer, SPOriginalIssuers.Format(SPOriginalIssuerType.TrustedProvider, this.associatedLoginProvider.Name), StringComparison.OrdinalIgnoreCase)) { logger.FillResolveIssuerMismatch(resolveInput.OriginalIssuer, SPOriginalIssuers.Format(SPOriginalIssuerType.TrustedProvider, this.associatedLoginProvider.Name)); return; } SPSecurity.RunWithElevatedPrivileges(delegate { this.InitializeApiClient(context); var input = resolveInput.Value.Contains(IdentifierValuesSeparator) ? resolveInput.Value.Split(IdentifierValuesSeparator)[1] : resolveInput.Value; var connectionName = resolveInput.Value.Contains(IdentifierValuesSeparator) ? resolveInput.Value.Split(IdentifierValuesSeparator)[0] : string.Empty; var consolidatedResults = this.ResolveInputBulk(input, connectionName); if (consolidatedResults != null && consolidatedResults.Count > 0) { resolved.Add(consolidatedResults.ElementAt(0).PickerEntity); return; } if (resolveInput.ClaimType == DefaultClaimTypes.Connection) { var user = new Auth0.User { Identities = new List <Identity> { new Identity { Connection = resolveInput.Value } } }; resolved.Add(this.GetPickerEntity(user, SPClaimEntityTypes.FormsRole)); } else if (resolveInput.ClaimType == DefaultClaimTypes.Role) { resolved.Add(this.GetRolePickerEntity(resolveInput.Value)); } else if (this.alwaysResolveValue) { var user = new Auth0.User { Email = input, Name = string.Empty, Picture = string.Empty, Identities = new List <Identity> { new Identity { Connection = connectionName } } }; resolved.Add(this.GetPickerEntity(user, SPClaimEntityTypes.User)); } logger.Resolved(resolved); }); }