共用方式為


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

衍生的類別中實作時,請將宣告 token 加強自訂宣告。

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

Syntax

'宣告
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
    Type: System.Uri

    為 URI 內容。這必須是格式正確的 URI。

備註

當您在使用者的安全性權杖中包含其他宣告時,已擴大宣告。如果您想要擴大宣告,您必須實作此方法。此外,您也必須設定SupportsEntityInformation屬性來trueSPClaimProvider類別中。為了要呼叫此方法, SupportsEntityInformation必須傳回true。

如需宣告增強的詳細資訊,請參閱How to: Create a Claims ProviderClaims Provider

下列程式碼範例會顯示的宣告增強的支援,以及如何增強宣告。示範的目的,此宣告提供者範例僅支援兩個使用者"contoso\spuser1"及"contoso\spuser2"的宣告增強。宣告提供者時的宣告提供者會看到這些兩位使用者登入 SharePoint 網站,將會新增至使用者 token 的兩個其他宣告: CRMClaimType.Role和CRMClaimType.Region (不會顯示以下) 的個別類別中所定義的。

**DecodeUserIdentifierClaim()**是靜態的方法可以用來解碼使用者身分識別宣告。

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

請參閱

參照

SPClaimProvider class

SPClaimProvider members

FillClaimsForEntity overload

Microsoft.SharePoint.Administration.Claims namespace