ClaimSet Class

Definition

Stellt die Auflistung von Ansprüchen dar, die einer Entität zugeordnet sind. Represents the collection of claims that are associated with an entity.

[System.Runtime.Serialization.DataContract(Namespace="http://schemas.xmlsoap.org/ws/2005/05/identity")]
public abstract class ClaimSet : System.Collections.Generic.IEnumerable<System.IdentityModel.Claims.Claim>
Vererbung
ClaimSet
Abgeleitet
Attribute
Implementiert

Beispiele

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

}
Public Class MyServiceAuthorizationManager
    Inherits ServiceAuthorizationManager

    Protected Overrides Function CheckAccessCore(ByVal operationContext As OperationContext) As Boolean

        ' Extract the action URI from the OperationContext. Match this against the claims
        ' in the AuthorizationContext.
        Dim action As String = operationContext.RequestContext.RequestMessage.Headers.Action
        Console.WriteLine("action: {0}", action)

        ' Iterate through the various claim sets in the AuthorizationContext.
        Dim cs As ClaimSet

        For Each cs In operationContext.ServiceSecurityContext.AuthorizationContext.ClaimSets
            ' Examine only those claim sets issued by System.
            If cs.Issuer Is ClaimSet.System Then
                ' Iterate through claims of type "http://example.org/claims/allowedoperation".
                Dim c As Claim
                For Each 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() Then
                        Return True
                    End If
                Next c
            End If
        Next cs
        ' 
        ' If this point is reached, return false to deny access.
        Return False

    End Function 

Hinweise

Nachdem die ClaimSet-Klasse erstellt wurde, kann diese nicht mehr geändert werden.After the ClaimSet class has been created, it cannot be changed.

Bei der Verwendung der anspruchbasierten Autorisierung muss häufig der Inhalt eines ClaimSet für bestimmte Anspruchstypen überprüft werden.Examining the content of a ClaimSet for particular types of claims is a common task when using claim-based authorization. Verwenden Sie die ClaimSet-Methode, um FindClaims auf das Vorhandensein eines bestimmten Anspruchs zu überprüfen.To examine a ClaimSet for the presence of particular claims, use the FindClaims method. Diese Methode ist leistungsstärker als eine direkte Iteration über den ClaimSet.The method provides better performance than iterating directly over the ClaimSet.

Konstruktoren

ClaimSet()

Initialisiert eine neue Instanz der ClaimSet-Klasse. Initializes a new instance of the ClaimSet class.

Eigenschaften

Count

Ruft beim Überschreiben in einer abgeleiteten Klasse die Anzahl der Ansprüche in diesem Satz von Ansprüchen ab. When overridden in a derived class, gets the number of claims in this claim set.

Issuer

Ruft beim Überschreiben in einer abgeleiteten Klasse die Entität ab, die diesen ClaimSet ausgestellt hat. When overridden in a derived class, gets the entity that issued this ClaimSet.

Item[Int32]

Ruft beim Überschreiben in einer abgeleiteten Klasse den Claim für den angegebenen Index ab. When overridden in a derived class, gets the Claim for the specified index.

System

Ruft ein ClaimSet-Objekt ab, das einen für die Anwendung vertrauenswürdigen Aussteller darstellt. Gets a ClaimSet object that represents an application trusted issuer.

Windows

Ruft einen Satz von Ansprüchen ab, der Windows-Sicherheits-IDs enthält. Gets a set of claims that contains Windows security identifiers.

Methoden

ContainsClaim(Claim)

Bestimmt, ob der ClaimSet den angegebenen Claim enthält. Determines whether the ClaimSet contains the specified Claim.

ContainsClaim(Claim, IEqualityComparer<Claim>)

Bestimmt anhand des angegebenen ClaimSet-Objekts, ob der Claim den angegebenen IEqualityComparer<T> enthält. Determines whether the ClaimSet contains the specified Claim, by using the specified IEqualityComparer<T> object.

Equals(Object)

Bestimmt, ob das angegebene Objekt mit dem aktuellen Objekt identisch ist. Determines whether the specified object is equal to the current object.

(Inherited from Object)
FindClaims(String, String)

Sucht beim Überschreiben in einer abgeleiteten Klasse ein Claim-Objekt, das mit dem angegebenen Anspruchtyp und den Rechten im ClaimSet übereinstimmt. When overridden in a derived class, searches for a Claim object that matches the specified claim type and rights in the ClaimSet.

GetEnumerator()

Ruft beim Überschreiben in einer abgeleiteten Klasse einen IEnumerator<T> auf, der zum Auflisten des Claim-Objekts in dem ClaimSet verwendet werden kann. When overridden in a derived class, gets a IEnumerator<T> that can be used to enumerate the Claim object in the ClaimSet.

GetHashCode()

Fungiert als die Standardhashfunktion. Serves as the default hash function.

(Inherited from Object)
GetType()

Ruft den Type der aktuellen Instanz ab. Gets the Type of the current instance.

(Inherited from Object)
MemberwiseClone()

Erstellt eine flache Kopie des aktuellen Object. Creates a shallow copy of the current Object.

(Inherited from Object)
ToString()

Gibt eine Zeichenfolge zurück, die das aktuelle Objekt darstellt. Returns a string that represents the current object.

(Inherited from Object)

Explizite Schnittstellenimplementierungen

IEnumerable.GetEnumerator()

Ruft einen IEnumerator<T> ab, der zum Auflisten des Claim-Objekts im ClaimSet verwendet werden kann. Gets an IEnumerator<T> that can be used to enumerate the Claim object in the ClaimSet.

Gilt für: