Freigeben über


SPClaimProvider.FillClaimsForEntity-Methode (Uri, SPClaim, List<SPClaim>)

Bei der Implementierung in einer abgeleiteten Klasse erweitert die benutzerdefinierte Ansprüche in einen anspruchstoken.

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

Syntax

'Declaration
Protected MustOverride Sub FillClaimsForEntity ( _
    context As Uri, _
    entity As SPClaim, _
    claims As List(Of SPClaim) _
)
'Usage
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
)

Parameter

  • context
    Typ: System.Uri

    Der Kontext, als URI. Dies muss ein korrekt formatierten URI sein.

Hinweise

Wenn Sie zusätzlicher Ansprüche im Sicherheitstoken des Benutzers einschließen, erweitern Sie Ansprüche. Wenn Sie Ansprüchen möchten, müssen Sie diese Methode implementieren. Darüber hinaus müssen Sie auch die SupportsEntityInformation -Eigenschaft auf true in der SPClaimProvider -Klasse festlegen. Damit diese Methode aufgerufen wird muss die SupportsEntityInformationtruezurückgegeben.

Weitere Informationen zur anspruchserweiterung finden Sie unter How to: Create a Claims Provider und Claims Provider.

Im folgenden Codebeispiel wird veranschaulicht, Unterstützung für anspruchserweiterung und wie Sie Ansprüchen. Für Demo Zweck unterstützt nur die in diesem Beispiel der Claims Provider forderungserweiterung für zwei Benutzer "contoso\spuser1" und "contoso\spuser2". Wenn der Anspruchsanbieter diese Anmeldung zwei Benutzer zu einer SharePoint-Website angezeigt wird, wird der Anspruchsanbieter zwei zusätzliche Forderungen an den das Benutzertoken hinzugefügt: CRMClaimType.Role und CRMClaimType.Region , die in einer separaten Klasse (hier nicht dargestellt) definiert sind.

DecodeUserIdentifierClaim() ist einer statischen Methode, die die Benutzer Identitätsansprüchen decodieren verwendet werden kann.

Beispielcode bereitgestellt von:Sample code provided by: Andy Li, Microsoft Corporation.

Beispiele

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

Siehe auch

Referenz

SPClaimProvider Klasse

SPClaimProvider-Member

FillClaimsForEntity-Überladung

Microsoft.SharePoint.Administration.Claims-Namespace