Writing a Custom Claims Provider for SharePoint 2010 - Part 4: Supporting Resolve Name
In the first three parts of this series we've implemented just about all of the support needed to do an end-to-end claims provider. In this last post I'll describe how to name resolution support in the type-in control. To add this support we'll need to implement the following property and methods: SupportsResolve and FillResolve. Now the good news is that I already covered how to implement SupportsResolve and one of the FillResolve overloads in part 3. So this posting will be pretty short - here's the implementation for the other overload of FillResolve that was not covered in part 3:
protected override void FillResolve(Uri context, string[] entityTypes,
string resolveInput,
List<Microsoft.SharePoint.WebControls.PickerEntity> resolved)
{
//make sure picker is asking for the type of entity we
//return; site collection admin won't for example
if (!EntityTypesContain(entityTypes, SPClaimEntityTypes.FormsRole))
return;
//same sort of code as in search to validate we have a match
foreach (string team in ourTeams)
{
if (team.ToLower() == resolveInput.ToLower())
{
//we have a match, create a matching entity
PickerEntity pe = GetPickerEntity(team);
//add it to the return list of picker entries
resolved.Add(pe);
}
}
}
If you've been following along then this chunk of code should be completely straightforward. If it isn't, then read through part 3 again.
We are now code complete. If I bring up the type-in control and enter a team name and then click the resolve button, here's what it looks like - first when you type it in, and then after clicking the resolve button:
And with that, we're done. Hopefully you will find this information useful as you start building out your claims authentication plans.