Compartilhar via


SPClaimProvider.FillClaimsForEntity method (Uri, SPClaim, List<SPClaim>)

Quando implementado em uma classe derivada, aumenta as declarações personalizadas em um token de declarações.

Namespace:  Microsoft.SharePoint.Administration.Claims
Assembly:  Microsoft.SharePoint (in Microsoft.SharePoint.dll)

Syntax

'Declaração
Protected MustOverride Sub FillClaimsForEntity ( _
    context As Uri, _
    entity As SPClaim, _
    claims As List(Of SPClaim) _
)
'Uso
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
)

Parâmetros

  • context
    Type: System.Uri

    O contexto, como um URI. Este valor deve ser um URI corretamente formatado.

Comentários

Quando você incluir declarações adicionais no token de segurança do usuário, estão aumentando declarações. Se você deseja ampliar declarações, você deve implementar esse método. Além disso, você também deve definir a propriedade SupportsEntityInformation para true na classe SPClaimProvider . Em ordem para este método ser chamado, a SupportsEntityInformation deve retornar true.

Para obter mais informações sobre o aumento de declarações, consulte How to: Create a Claims Provider e Claims Provider.

O exemplo de código a seguir mostra como aumentar as declarações e suporte para aumento da capacidade de declarações. Para propósito de demonstração, este exemplo de provedor de declarações suporta apenas aumento de declarações para dois usuários "contoso\spuser1" e "contoso\spuser2". Quando o provedor de declarações vê login esses dois usuários para um site do SharePoint, o provedor de declarações adicionará duas declarações adicionais para o token de usuário: CRMClaimType.Role e CRMClaimType.Region , que são definidos em uma classe separada (não mostrada aqui).

DecodeUserIdentifierClaim() é um método estático que pode ser usado para decodificar as declarações de identidade de usuário.

Sample code provided by: Andy Li, Microsoft Corporation.

Examples

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

Ver também

Referência

SPClaimProvider class

SPClaimProvider members

FillClaimsForEntity overload

Microsoft.SharePoint.Administration.Claims namespace