SPClaimProvider.FillClaimsForEntity 方法 (Uri, SPClaim, List<SPClaim>)
派生类中实现时,补充的声明标记的自定义声明。
命名空间: Microsoft.SharePoint.Administration.Claims
程序集: Microsoft.SharePoint(位于 Microsoft.SharePoint.dll 中)
语法
声明
Protected MustOverride Sub FillClaimsForEntity ( _
context As Uri, _
entity As SPClaim, _
claims As List(Of SPClaim) _
)
用法
Dim context As Uri
Dim entity As SPClaim
Dim claims As List(Of SPClaim)
Me.FillClaimsForEntity(context, entity, _
claims)
protected abstract void FillClaimsForEntity(
Uri context,
SPClaim entity,
List<SPClaim> claims
)
参数
context
类型:System.Uri上下文,为 URI。这必须是格式正确的 URI。
entity
类型:Microsoft.SharePoint.Administration.Claims.SPClaim要扩充的实体。
claims
类型:System.Collections.Generic.List<SPClaim>SPClaim泛型声明列表进行修改,即其他索赔或索赔充实将添加。
备注
当您在用户的安全令牌中包含其他索赔时,在扩展声明。如果您想要增加索赔,则必须实现此方法。此外,还必须设置为true在SPClaimProvider类中的SupportsEntityInformation属性。为了要调用此方法, SupportsEntityInformation必须返回true。
声明补充有关的详细信息,请参阅如何:在 SharePoint 2013 中创建声明提供程序和SharePoint 2013 中的声明提供程序。
下面的代码示例演示对索赔增加的支持,以及如何补充索赔。出于演示目的,此声明提供程序示例仅支持两个用户"contoso\spuser1"和"contoso\spuser2"的索赔充实。声明提供程序当声明提供方看到这些两个用户登录到 SharePoint 网站时,将添加两个额外索赔与用户令牌: CRMClaimType.Role和CRMClaimType.Region (此处未显示) 的一个单独的类中定义。
**DecodeUserIdentifierClaim()**是静态方法,可用于解码用户标识声明。
示例代码提供者:Andy Li,Microsoft Corporation。
示例
public override bool SupportsEntityInformation
{
get { return true; }
}
protected override void FillClaimsForEntity(Uri context, SPClaim entity, List<SPClaim> claims)
{
if (null == entity)
{
throw new ArgumentNullException("entity");
}
if (null == claims)
{
throw new ArgumentNullException("claims");
}
// Adds the role claim.
SPClaim userIdClaim = SPClaimProviderManager.DecodeUserIdentifierClaim(entity);
//Adds claims for SPUSER1 with CONTOSO as the domain.
if (userIdClaim.Value.ToUpper() == "CONTOSO\\SPUSER1")
{
claims.Add(CreateClaim(CRMClaimType.Role, CRMRoleValue.SalesManager, Microsoft.IdentityModel.Claims.ClaimValueTypes.String));
claims.Add(CreateClaim(CRMClaimType.Region, CRMRegionValue.NorthWest, Microsoft.IdentityModel.Claims.ClaimValueTypes.String));
}
// Adds claims for CONTOSO\SPUSER2
if (userIdClaim.Value.ToUpper() == "CONTOSO\\SPUSER2")
{
claims.Add(CreateClaim(CRMClaimType.Role, CRMRoleValue.RegionManager, Microsoft.IdentityModel.Claims.ClaimValueTypes.String));
claims.Add(CreateClaim(CRMClaimType.Region, CRMRegionValue.NorthWest, Microsoft.IdentityModel.Claims.ClaimValueTypes.String));
}
}