Domanda

Ho implementato un fornitore di reclami personalizzati.Quando inserisco un termine nel raccoglitore di persone, interroga il provider e restituisce un elenco di oggetti di accoppiamento corrispondente.

Il debug mostra che il numero corretto di oggetti di occupazione viene inviato a SharePoint ma il selezionatore delle persone non li visualizza.Tuttavia, mostra tuttavia una stringa che indica 'mostrando i risultati x dove X corrisponde al numero di risultati che dovrebbe visualizzare.

Il mio metodo FillSearch è il seguente:

        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);
        }
.

Il codice che popola l'elenco delle partite è così chiamando il seguente metodo

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;
}
.

Come posso aver visualizzato i risultati?

Immagine mostrando la selezione delle persone dopo il fornitore personalizzato

È stato utile?

Soluzione

Si è rivelato un problema di attivazione.Ho notato che tra le implementazioni del mio codice del fornitore personalizzato, i metodi FillClamimtypes e FillClamValueTypes non sono stati chiamati.

Ho disattivato il provider personalizzato utilizzando SP2013ClamaMstools e riattivato.I metodi di FillClaimTypes e FillClalimValueTypes sono stati chiamati e tutto ha iniziato a lavorare come previsto.

Altri suggerimenti

Ho avuto il tuo stesso problema. Era sul metodo di fillclamtypes. C'è una miss-corrispondente dall'URL dello schema specificato nel metodo e l'URL dello schema assegnato alla tua richiesta. Ho risolto assegnando lo stesso URL dello schema. Qui per maggiori dettagli http://www.lucacostante.com/item/41-custom-claims-provider-results-not-Showing-in-people-picker.html

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a sharepoint.stackexchange
scroll top