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。

备注

当您在用户的安全令牌中包含其他索赔时,在扩展声明。如果您想要增加索赔,则必须实现此方法。此外,还必须设置为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));
    }
    
}

另请参阅

引用

SPClaimProvider 类

SPClaimProvider 成员

FillClaimsForEntity 重载

Microsoft.SharePoint.Administration.Claims 命名空间