Compartir a través de


del método SPClaimProvider.FillSearch

Cuando se implementa en una clase derivada, rellena los resultados de búsqueda en la ventana del control de selector de personas.

Espacio de nombres:  Microsoft.SharePoint.Administration.Claims
Ensamblado:  Microsoft.SharePoint (en Microsoft.SharePoint.dll)

Sintaxis

'Declaración
Protected MustOverride Sub FillSearch ( _
    context As Uri, _
    entityTypes As String(), _
    searchPattern As String, _
    hierarchyNodeID As String, _
    maxCount As Integer, _
    searchTree As SPProviderHierarchyTree _
)
'Uso
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
)

Parámetros

  • context
    Tipo: System.Uri

    El contexto, como un identificador URI. Esto debe ser un URI con el formato correcto.

  • entityTypes
    Tipo: []

    Establecen los tipos de entidad [P:HYPERLINK"mk:@MSITStore:D:\\\\aSDK\\\\SP2010SDK.chm::/html/a4bf54d0-29e5-e5c2-231e-b1b9f4728a7f.htm"Microsoft.SharePoint.WebControls.PickerEntity.EntityType] para establecer el ámbito de la búsqueda.

  • hierarchyNodeID
    Tipo: System.String

    El identificador único del nodo de jerarquía.

  • maxCount
    Tipo: System.Int32

    Un valor de Int32 que contiene el número máximo de proveedores que se devuelve en la lista.

Comentarios

Si desea poder buscar notificaciones en el control de selector de personas, debe implementar esta propiedad método y [P:HYPERLINK"ms-help://MS.SPS14SDK.en/SPF14MrefAdmin/html/ba710e89-6180-0fec-fb79-090451f9ee43.htm"Microsoft.SharePoint.Administration.Claims.SupportSearch].

El SupportsSearch debe devolver true.

Con fines de demostración, la función de búsqueda solo admite la búsqueda de nombre completo. Como puede ver, el proveedor de notificaciones admite dos notificaciones como entidad de seguridad: jefe de ventas y RegionManager. Pueden ser utilizado para proteger objetos de SharePoint, al igual que el ejemplo de código en el tema de referencia de FillEntityTypes() usa las funciones de ASP.NET para hacer lo mismo.

También se debe implementar el método FillResolve() que toma un parámetro de SPClaim . Este método se usa para resolver una notificación única para comprobar la existencia de la notificación. El selector de personas de búsqueda en primer lugar las notificaciones mediante el método FillSearch() . Una vez que el usuario selecciona una de las notificaciones, el selector de personas llama a FillResolve() para comprobar de nuevo.

Ejemplo de código proporcionado por:Sample code provided by: Andy Li, Microsoft Corporation.

Ejemplos


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

Vea también

Referencia

clase SPClaimProvider

Miembros SPClaimProvider

Espacio de nombres Microsoft.SharePoint.Administration.Claims