Поставщики пользовательских претензий - результаты, не показывая у людей сортировщика
-
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