Поставщики пользовательских претензий - результаты, не показывая у людей сортировщика

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

  •  28-09-2020
  •  | 
  •  

Вопрос

Я внедрил поставщик пользовательских претензий.Когда я ввожу термин в Picker Picker, он запрашивает провайдер и возвращает список сопоставления объектов пикера.

Отладка показывает, что правильное количество объектов пикерентности отправляется обратно в SharePoint, но выбора людей не отображают их.Это, тем не менее, показывает строку, указав «показывающую результаты x», где x соответствует количеству результатов, которые он должен отображать.

Мой метод FillSearch выглядит следующим образом:

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

Код, который заполняет список совпадений, делает это, вызывая следующий метод

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

Как я могу отобразить результаты?

Это было полезно?

Решение

Это оказалось, что это проблема активации.Я заметил, что между развертываниями моего пользовательского кода поставщика PLALKLAIMTYPES и FLALCHVALUETYPES не вызывали.

Я деактивировал пользовательский провайдер, используя SP2013CLAIMStools и повторно активирован.Были названы методы FillClaimTypes и FilleClaimValueTypes, и все началось работать, как ожидалось.

Другие советы

У меня была твоя же проблема. Это было на методе FillClaimTypes. Существует Miss-Match от URL-адреса схемы, указанного в методе, и URL-адрес схемы, назначенный вашему требованию. Я разрешил присвоение одного и того же URL схемы. Здесь для более подробной информации http://www.lucacostante.com/item/41-custom-claims-provider-results-not-swork-in-people-picker.html

Лицензировано под: CC-BY-SA с атрибуция
Не связан с sharepoint.stackexchange
scroll top