Fournisseur de réclamations personnalisées - Résultats ne s'affiche pas dans les personnes Picker

sharepoint.stackexchange https://sharepoint.stackexchange.com/questions/101888

  •  28-09-2020
  •  | 
  •  

Question

J'ai mis en place un fournisseur de réclamations personnalisées.Lorsque je saisi un terme dans le sélecteur de personnes, il interroge le fournisseur et renvoie une liste d'objets de pickéricité correspondants.

Le débogage montre que le nombre correct d'objets de pickerentité est renvoyé à SharePoint, mais le sélecteur de personnes ne les affiche pas.Il montre toutefois une chaîne indiquant "Affichage des résultats x" où X correspond au nombre de résultats qu'il doit afficher.

Ma méthode FillSearch est la suivante:

        protected override void FillSearch(Uri context, string[] entityTypes, string searchValue, string hierarchyNodeID, int maxCount, SPProviderHierarchyTree searchTree)
        {
            // Ensure that People Picker is asking for the type of entity that we 
            // return; site collection administrator will not return, for example.
            if (!EntityTypesContain(entityTypes, SPClaimEntityTypes.FormsRole)) { return; }

            List<PickerEntity> matches = new List<PickerEntity>();

            /*
            removed code that retrieves the matches
            */

            searchTree.AddEntities(matches);
        }

Le code qui remplit la liste des matchs le fait en appelant la méthode suivante

private PickerEntity GetPickerEntity(string claimValue)
{
    PickerEntity pickerEntity = CreatePickerEntity();

    pickerEntity.Claim = CreateClaim(BaseClaimType, claimValue, StringClaimValueType);
    pickerEntity.Description = ProviderDisplayName + ":" + claimValue;
    pickerEntity.DisplayText = claimValue;
    pickerEntity.EntityData[PeopleEditorEntityDataKeys.DisplayName] = claimValue;
    pickerEntity.EntityType = SPClaimEntityTypes.FormsRole;
    pickerEntity.IsResolved = true;

    return pickerEntity;
}

Comment puis-je avoir-je afficher les résultats?

image montrant que le sélecteur de personnes après le prestataire personnalisé est interrogé

Était-ce utile?

La solution

Cela s'est avéré être un problème d'activation.J'ai remarqué qu'entre les déploiements de mon code de fournisseur personnalisé, les méthodes FillclaimTypes et FillClaimValueTypes n'étaient pas appelées.

J'ai désactivé le fournisseur personnalisé à l'aide du SP2013ClaimSoTools et réactivé.Les méthodes FillclaimTypes et FillClaimValueTypes ont été appelées et tout a commencé à travailler comme prévu.

Autres conseils

J'ai eu votre même problème. C'était sur la méthode FillclaimTypes. Il existe une correspondance de l'URL de schéma spécifiée dans la méthode et l'URL de schéma attribuée à votre demande. J'ai résolu l'attribution de la même URL de schéma. Ici pour plus de détails http://www.lucacostant.com/item/41-custom-claims-provider-results-not-showing-in-people-picker.html

Licencié sous: CC-BY-SA avec attribution
Non affilié à sharepoint.stackexchange
scroll top