Proveedor de reclamaciones personalizadas - Resultados que no se muestran en la selección de personas

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

  •  28-09-2020
  •  | 
  •  

Pregunta

He implementado un proveedor de reclamaciones personalizadas.Cuando ingrese un término en el recolector de personas, consulta al proveedor y devuelve una lista de objetos de recogida correspondiente.

La depuración muestra que el número correcto de objetos de selección se envía a SharePoint, pero el selector de personas no los muestra.Sin embargo, muestra una cadena que indica 'Mostrar los resultados X' donde X coincide con el número de resultados que debe mostrar.

My FillSearch Methody es el siguiente:

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

El código que llena la lista de coincidencias lo hace, por lo que llama al siguiente método

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

¿Cómo puedo mostrarlo mostrar los resultados?

Image Mostrando People Picker después de que se consulta el proveedor personalizado

¿Fue útil?

Solución

Esto resultó ser un problema de activación.Noté que entre los despliegues de mi código de proveedor personalizado, los métodos de FillClaimypes y FillClaimvalueTypes no se llamaban.

Desactivado al proveedor personalizado usando el SP2013ClailStools y reactivado.Se llamaron los métodos de FillClaimTypes y FillClaimvalueTytypes y todo comenzó a trabajar como se espera.

Otros consejos

Tuve tu mismo problema. Estaba en el método de FillClaimTypes. Hay una falla de la URL de esquema especificada en el método y la URL de esquema asignada a su reclamación. He resuelto asignar la misma URL de esquema. Aquí para más detalles http://www.lucacostante.com/item/41-custom-Claims-provider-Results-NOT-Showing-in-people-picker.html

Licenciado bajo: CC-BY-SA con atribución
scroll top