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.UriDer Kontext, als URI. Dies muss ein korrekt formatierten URI sein.
entity
Typ: Microsoft.SharePoint.Administration.Claims.SPClaimDie Entität, die erweitert werden soll.
claims
Typ: System.Collections.Generic.List<SPClaim>Liste der SPClaim generischen Ansprüche aus geändert werden soll, wobei zusätzlicher Ansprüche oder anspruchserweiterung hinzugefügt werden soll.
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));
}
}