Diese Dokumentation wurde archiviert und wird nicht länger gepflegt.

ClaimSet-Klasse

Aktualisiert: November 2007

Stellt die Auflistung von Ansprüchen dar, die einer Entität zugeordnet sind.

Namespace:  System.IdentityModel.Claims
Assembly:  System.IdentityModel (in System.IdentityModel.dll)

[DataContractAttribute(Namespace = "http://schemas.xmlsoap.org/ws/2005/05/identity")]
public abstract class ClaimSet : IEnumerable<Claim>, 
	IEnumerable
/** @attribute DataContractAttribute(Namespace = "http://schemas.xmlsoap.org/ws/2005/05/identity") */
public abstract class ClaimSet implements IEnumerable<Claim>, 
	IEnumerable
public abstract class ClaimSet implements IEnumerable<Claim>, IEnumerable

Nachdem die ClaimSet-Klasse erstellt wurde, kann diese nicht mehr geändert werden.

Bei Verwendung der anspruchbasierten Autorisierung muss häufig der Inhalt für einen ClaimSet für bestimmte Anspruchtypen überprüft werden. Verwenden Sie die FindClaims-Methode, um einen ClaimSet auf das Vorhandensein eines bestimmten Anspruchs zu überprüfen. Diese Methode ist leistungsstärker als eine direkte Iteration über den ClaimSet.

public class MyServiceAuthorizationManager : ServiceAuthorizationManager
{

   protected override bool CheckAccessCore(OperationContext operationContext)
    {                
        // Extract the action URI from the OperationContext. Match this against the claims
        // in the AuthorizationContext.

        string action = operationContext.RequestContext.RequestMessage.Headers.Action;
        Console.WriteLine("action: {0}", action);

        // Iterate through the various claim sets in the AuthorizationContext.
        foreach(ClaimSet cs in operationContext.ServiceSecurityContext.AuthorizationContext.ClaimSets)
        {
            // Examine only those claim sets issued by System.
            if (cs.Issuer == ClaimSet.System)
            {
                // Iterate through claims of type "http://example.org/claims/allowedoperation".
                foreach (Claim c in cs.FindClaims("http://example.org/claims/allowedoperation", 
                    Rights.PossessProperty))
                {
                    // Write the claim resource to the console.
                    Console.WriteLine("resource: {0}", c.Resource.ToString());

                    // If the claim resource matches the action URI then return true to allow access.
                    if (action == c.Resource.ToString())
                        return true;
                }
            }
        }

        // If this point is reached, return false to deny access.
        return false;                 
    }

}


Alle öffentlichen static (Shared in Visual Basic)-Member dieses Typs sind threadsicher. Bei Instanzmembern ist die Threadsicherheit nicht gewährleistet.

Windows Vista, Windows XP SP2, Windows Server 2003

.NET Framework und .NET Compact Framework unterstützen nicht alle Versionen sämtlicher Plattformen. Eine Liste der unterstützten Versionen finden Sie unter Systemanforderungen für .NET Framework.

.NET Framework

Unterstützt in: 3.5, 3.0
Anzeigen: