Метод SPClaimProvider.FillSearch
При реализации в класс, производный заполняет результатов поиска в окно элемента управления "Выбор людей".
Пространство имен: Microsoft.SharePoint.Administration.Claims
Сборка: Microsoft.SharePoint (в Microsoft.SharePoint.dll)
Синтаксис
'Декларация
Protected MustOverride Sub FillSearch ( _
context As Uri, _
entityTypes As String(), _
searchPattern As String, _
hierarchyNodeID As String, _
maxCount As Integer, _
searchTree As SPProviderHierarchyTree _
)
'Применение
Dim context As Uri
Dim entityTypes As String()
Dim searchPattern As String
Dim hierarchyNodeID As String
Dim maxCount As Integer
Dim searchTree As SPProviderHierarchyTree
Me.FillSearch(context, entityTypes, _
searchPattern, hierarchyNodeID, _
maxCount, searchTree)
protected abstract void FillSearch(
Uri context,
string[] entityTypes,
string searchPattern,
string hierarchyNodeID,
int maxCount,
SPProviderHierarchyTree searchTree
)
Параметры
context
Тип: System.UriКонтекст как URI. Это должен быть правильно отформатированного URI.
entityTypes
Тип: []Типы сущностей [P:HYPERLINK"mk:@MSITStore:D:\\\\aSDK\\\\SP2010SDK.chm::/html/a4bf54d0-29e5-e5c2-231e-b1b9f4728a7f.htm"Microsoft.SharePoint.WebControls.PickerEntity.EntityType] задайте для определения области поиска.
- searchPattern
Тип: System.String
hierarchyNodeID
Тип: System.StringУникальный идентификатор узла иерархии.
maxCount
Тип: System.Int32Значение Int32 , содержащее максимальное количество поставщиков должны быть возвращены в списке.
searchTree
Тип: Microsoft.SharePoint.WebControls.SPProviderHierarchyTreeДерева, в котором будут заполнены набор совпадений поиска.
Замечания
Если необходимо иметь возможность поиска в элементе управления "Выбор людей", необходимо реализовать этот метод и **[P:HYPERLINK"ms-help://MS.SPS14SDK.en/SPF14MrefAdmin/html/ba710e89-6180-0fec-fb79-090451f9ee43.htm"Microsoft.SharePoint.Administration.Claims.SupportSearch]**свойство.
SupportsSearch должен вернуть true.
В целях демонстрации функцию поиска поддерживает только полное имя поиска. Как вы видите, поставщик утверждений поддерживает два утверждений в качестве участника: SalesManager и RegionManager. Их можно использовать их к защищенным объектам SharePoint так же, как в примере кода в справочном разделе FillEntityTypes() используется ролей ASP.NET для выполните те же действия.
Также необходимо реализовать метод FillResolve() , который принимает параметр SPClaim . Этот метод используется для решения одной одного утверждений для проверки наличия утверждения. Средство выбора людей сначала поиск утверждений, с помощью метода FillSearch() . Когда пользователь выбирает одно из утверждений, "Выбор людей" вызывает FillResolve() , чтобы проверить его еще раз.
Пример кода предоставлен:Sample code provided by: Энди Ли (Andy Li), корпорация Майкрософт
Примеры
// Returns true if you support claim search in the People Picker control.
public override bool SupportsSearch
{
get { return true; }
}
protected override void FillSearch(Uri context, string[] entityTypes, string searchPattern, string hierarchyNodeID, int maxCount, SPProviderHierarchyTree searchTree)
{
if (searchPattern.ToUpper() == "SALESMANAGER")
{
PickerEntity entity = CreatePickerEntity();
entity.Claim = CreateClaim(CRMClaimType.Role, CRMRoleValue.SalesManager, Microsoft.IdentityModel.Claims.ClaimValueTypes.String);
entity.Description = CRMRoleValue.SalesManager;
entity.DisplayText = CRMRoleValue.SalesManager;
entity.EntityData[PeopleEditorEntityDataKeys.DisplayName] = CRMRoleValue.SalesManager;
entity.EntityType = SPClaimEntityTypes.FormsRole;
entity.IsResolved = true;
searchTree.AddEntity(entity);
}
if (searchPattern.ToUpper() == "REGIONMANAGER")
{
PickerEntity entity = CreatePickerEntity();
entity.Claim = CreateClaim(CRMClaimType.Role, CRMRoleValue.RegionManager, Microsoft.IdentityModel.Claims.ClaimValueTypes.String);
entity.Description = CRMRoleValue.RegionManager;
entity.DisplayText = CRMRoleValue.RegionManager;
entity.EntityData[PeopleEditorEntityDataKeys.DisplayName] = CRMRoleValue.RegionManager;
entity.EntityType = SPClaimEntityTypes.FormsRole;
entity.IsResolved = true;
searchTree.AddEntity(entity);
}
}
См. также
Справочные материалы
Пространство имен Microsoft.SharePoint.Administration.Claims