SPClaimProvider.FillHierarchy Method
When implemented in a derived class, provides the People Picker control with the ability to load portions of the SPProviderHierarchyTree tree from the claims provider and specifies the hierarchy for displaying the picker entities.
Namespace: Microsoft.SharePoint.Administration.Claims
Assembly: Microsoft.SharePoint (in Microsoft.SharePoint.dll)
Syntax
'Declaration
Protected MustOverride Sub FillHierarchy ( _
context As Uri, _
entityTypes As String(), _
hierarchyNodeID As String, _
numberOfLevels As Integer, _
hierarchy As SPProviderHierarchyTree _
)
'Usage
Dim context As Uri
Dim entityTypes As String()
Dim hierarchyNodeID As String
Dim numberOfLevels As Integer
Dim hierarchy As SPProviderHierarchyTree
Me.FillHierarchy(context, entityTypes, _
hierarchyNodeID, numberOfLevels, _
hierarchy)
protected abstract void FillHierarchy(
Uri context,
string[] entityTypes,
string hierarchyNodeID,
int numberOfLevels,
SPProviderHierarchyTree hierarchy
)
Parameters
context
Type: System.UriThe context, as a URI. This must be a properly formatted URI.
entityTypes
Type: []The EntityType entity types that are returned on the SPProviderHierarchyTree tree.
hierarchyNodeID
Type: System.StringThe HierarchyNodeID() node. If a null reference (Nothing in Visual Basic) then the root is returned.
numberOfLevels
Type: System.Int32The number of levels of hierarchy to return.
- hierarchy
Type: Microsoft.SharePoint.WebControls.SPProviderHierarchyTree
Remarks
If you want to display hierarchy on the left pane of the claims picker, you must implement this method and the SupportsHierarchy property in the SPClaimProvider class.
For more information claims picking and resolution, see How to: Create a Claims Provider and Claims Provider.
Examples
// Return true if you support hierarchy display in People Picker
public override bool SupportsHierarchy
{
get { return true; }
}
protected override void FillHierarchy(Uri context, String[] entityTypes, String hierarchyNodeID, int numberOfLevels, SPProviderHierarchyTree hierarchy)
{
if (String.IsNullOrEmpty(hierarchyNodeID))
{
hierarchy.AddChild(CreateHierarchyNodeForNodeID(MyLoginNameClaimType));
hierarchy.AddChild(CreateHierarchyNodeForNodeID(MyClaimType));
}
else if (String.Equals(hierarchyNodeID, MyLoginNameClaimType, StringComparison.Ordinal))
{
hierarchy.Name = GetHierarchyNodeNameForNodeID(hierarchyNodeID);
}
else if (String.Equals(hierarchyNodeID, MyClaimType, StringComparison.Ordinal))
{
hierarchy.Name = GetHierarchyNodeNameForNodeID(hierarchyNodeID);
}
}