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.UriO contexto, como um URI. Este valor deve ser um URI corretamente formatado.
entity
Type: Microsoft.SharePoint.Administration.Claims.SPClaimA entidade a ser aumentado.
claims
Type: System.Collections.Generic.List<SPClaim>SPClaim declarações genéricas lista a ser modificada, que é onde declarações adicionais ou aumento de declarações será adicionado.
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));
}
}