SPClaimProvider.FillSearch - Méthode
En cas d'implémentation dans une classe dérivée, insère les résultats de la recherche dans la fenêtre de contrôle de sélecteur de personnes.
Espace de noms : Microsoft.SharePoint.Administration.Claims
Assembly : Microsoft.SharePoint (dans Microsoft.SharePoint.dll)
Syntaxe
'Déclaration
Protected MustOverride Sub FillSearch ( _
context As Uri, _
entityTypes As String(), _
searchPattern As String, _
hierarchyNodeID As String, _
maxCount As Integer, _
searchTree As SPProviderHierarchyTree _
)
'Utilisation
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
)
Paramètres
context
Type : System.UriLe contexte, en tant qu'URI. Ce doit être un URI correctement mis en forme.
entityTypes
Type : []Les types d'entité [P:HYPERLINK"mk:@MSITStore:D:\\\\aSDK\\\\SP2010SDK.chm::/html/a4bf54d0-29e5-e5c2-231e-b1b9f4728a7f.htm"Microsoft.SharePoint.WebControls.PickerEntity.EntityType] définissent l'étendue de la recherche.
- searchPattern
Type : System.String
hierarchyNodeID
Type : System.StringIdentificateur unique du nœud de la hiérarchie.
maxCount
Type : System.Int32Une valeur Int32 qui contient le nombre maximal de fournisseurs à retourner dans la liste.
searchTree
Type : Microsoft.SharePoint.WebControls.SPProviderHierarchyTreeL'arborescence qui s'affiche dans le jeu de résultats de la recherche.
Remarques
Si vous souhaitez être en mesure de rechercher les revendications dans le contrôle sélecteur de personnes, vous devez implémenter cette méthode et **[P:HYPERLINK"ms-help://MS.SPS14SDK.en/SPF14MrefAdmin/html/ba710e89-6180-0fec-fb79-090451f9ee43.htm"Microsoft.SharePoint.Administration.Claims.SupportSearch]**de la propriété.
Le SupportsSearch doit retourner true.
À des fins de démonstration, la fonction de recherche prend uniquement en charge la recherche de nom complet. Comme vous pouvez le voir, le fournisseur de réclamations prend en charge deux demandes de remboursement en tant qu'entité : SalesManager et RegionManager. Ils peuvent être utilisés pour sécuriser les objets SharePoint comme l'exemple de code dans la rubrique de référence FillEntityTypes() utilisée les rôles ASP.NET pour faire la même chose.
Vous devez également implémenter la méthode FillResolve() qui accepte un paramètre SPClaim . Cette méthode est utilisée pour résoudre une seule déclaration de vérifier l'existence de la créance. Le sélecteur de personnes recherche d'abord les revendications à l'aide de la méthode FillSearch() . Une fois que l'utilisateur sélectionne l'une des déclarations, le sélecteur de personnes appelle FillResolve() pour vérifier à nouveau.
Exemple de code fourni par : Andy Li, Microsoft Corporation.
Exemples
// 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);
}
}