Freigeben über


SamlAttribute Klasse

Definition

Stellt ein Attribut dar, das dem Betreff eines Elements SamlAttributeStatementzugeordnet ist.

public ref class SamlAttribute
public class SamlAttribute
type SamlAttribute = class
Public Class SamlAttribute
Vererbung
SamlAttribute

Beispiele

protected override Collection<SamlAttribute> GetIssuedClaims(RequestSecurityToken RST)
{
    EndpointAddress rstAppliesTo = RST.AppliesTo;

    if (rstAppliesTo == null)
    {
        throw new InvalidOperationException("No AppliesTo EndpointAddress in RequestSecurityToken");
    }

    string bookName = rstAppliesTo.Headers.FindHeader(Constants.BookNameHeaderName, Constants.BookNameHeaderNamespace).GetValue<string>();
    if (string.IsNullOrEmpty(bookName))
        throw new FaultException("The book name was not specified in the RequestSecurityToken");

    EnsurePurchaseLimitSufficient(bookName);

    Collection<SamlAttribute> samlAttributes = new Collection<SamlAttribute>();

    foreach (ClaimSet claimSet in ServiceSecurityContext.Current.AuthorizationContext.ClaimSets)
    {
        // Copy Name claims from the incoming credentials into the set of claims to be issued.
        IEnumerable<Claim> nameClaims = claimSet.FindClaims(ClaimTypes.Name, Rights.PossessProperty);
        if (nameClaims != null)
        {
            foreach (Claim nameClaim in nameClaims)
            {
                samlAttributes.Add(new SamlAttribute(nameClaim));
            }
        }
    }
    // Add a purchase authorized claim.
    samlAttributes.Add(new SamlAttribute(new Claim(Constants.PurchaseAuthorizedClaim, bookName, Rights.PossessProperty)));
    return samlAttributes;
}
Protected Overrides Function GetIssuedClaims(ByVal RST As RequestSecurityToken) As Collection(Of SamlAttribute)

    Dim rstAppliesTo As EndpointAddress = RST.AppliesTo

    If rstAppliesTo Is Nothing Then
        Throw New InvalidOperationException("No AppliesTo EndpointAddress in RequestSecurityToken")
    End If

    Dim bookName As String = rstAppliesTo.Headers.FindHeader(Constants.BookNameHeaderName, Constants.BookNameHeaderNamespace).GetValue(Of String)()

    If String.IsNullOrEmpty(bookName) Then
        Throw New FaultException("The book name was not specified in the RequestSecurityToken")
    End If
    EnsurePurchaseLimitSufficient(bookName)

    Dim samlAttributes As New Collection(Of SamlAttribute)()

    Dim claimSet As ClaimSet
    For Each claimSet In ServiceSecurityContext.Current.AuthorizationContext.ClaimSets
        ' Copy Name claims from the incoming credentials into the set of claims we're going to issue
        Dim nameClaims As IEnumerable(Of Claim) = claimSet.FindClaims(ClaimTypes.Name, Rights.PossessProperty)
        If Not (nameClaims Is Nothing) Then
            Dim nameClaim As Claim
            For Each nameClaim In nameClaims
                samlAttributes.Add(New SamlAttribute(nameClaim))
            Next nameClaim
        End If
    Next claimSet
    ' add a purchase authorized claim
    samlAttributes.Add(New SamlAttribute(New Claim(Constants.PurchaseAuthorizedClaim, bookName, Rights.PossessProperty)))
    Return samlAttributes

End Function

Hinweise

Die SamlAttribute Klasse entspricht dem <saml:Attribute> XML-Element, das in der SPEZIFIKATION OASIS SAML 1.1 definiert ist.

Eine SamlAttribute Instanz enthält PossessProperty Ansprüche für den Betreff eines SamlAttributeStatement. Beispielsweise kann ein SamlAttribute Anspruch enthalten Over21 , dessen Typ in der Namespace Eigenschaft angegeben wird und dessen Ressource als Element der Auflistung in der AttributeValues Eigenschaft angegeben wird. Wenn die CreatePolicy Methode aufgerufen wird, wird dieser Over21 Anspruch der Autorisierungsrichtlinie hinzugefügt, die von der SamlAttributeStatementZurückgegeben wird. Wenn die AttributeValues Eigenschaft mehrere Elemente enthält, wird für jedes Element ein Anspruch zurückgegeben.

SamlAttribute die Position in der SAML-Objekthierarchie lautet:

SamlSecurityToken

SamlAssertion

SamlAttributeStatement

SamlAttribute

Konstruktoren

Name Beschreibung
SamlAttribute()

Initialisiert eine neue Instanz der SamlAttribute-Klasse.

SamlAttribute(Claim)

Initialisiert eine neue Instanz der SamlAttribute Klasse mithilfe des angegebenen Anspruchs.

SamlAttribute(String, String, IEnumerable<String>)

Initialisiert eine neue Instanz der SamlAttribute Klasse mithilfe des angegebenen Attributnamens, des XML-Namespaces und der Attributwerte.

Eigenschaften

Name Beschreibung
AttributeValues

Ruft eine Auflistung von Attributwerten für das SAML-Attribut ab.

AttributeValueXsiType

Dient zum Abrufen oder Festlegen des xsi:type der Werte, die im SAML-Attribut enthalten sind.

IsReadOnly

Ruft einen Wert ab, der angibt, ob die Eigenschaften dieser Instanz schreibgeschützt sind.

Name

Dient zum Abrufen oder Festlegen des Namens des SAML-Attributs.

Namespace

Ruft den XML-Namespace ab, in dem der Name des SAML-Attributs definiert ist, oder legt diesen fest.

OriginalIssuer

Dient zum Abrufen oder Festlegen der Zeichenfolge, die den OriginalIssuer des SAML-Attributs darstellt.

Methoden

Name Beschreibung
Equals(Object)

Bestimmt, ob das angegebene Objekt dem aktuellen Objekt entspricht.

(Geerbt von Object)
ExtractClaims()

Ruft eine Auflistung von Ansprüchen ab, die dieses SAML-Attribut darstellt.

GetHashCode()

Dient als Standardhashfunktion.

(Geerbt von Object)
GetType()

Ruft die Type der aktuellen Instanz ab.

(Geerbt von Object)
MakeReadOnly()

Bewirkt, dass diese Instanz schreibgeschützt ist.

MemberwiseClone()

Erstellt eine flache Kopie der aktuellen Object.

(Geerbt von Object)
ReadXml(XmlDictionaryReader, SamlSerializer, SecurityTokenSerializer, SecurityTokenResolver)

Liest das SAML-Attribut aus dem angegebenen XML-Reader.

ToString()

Gibt eine Zeichenfolge zurück, die das aktuelle Objekt darstellt.

(Geerbt von Object)
WriteXml(XmlDictionaryWriter, SamlSerializer, SecurityTokenSerializer)

Schreibt das SAML-Attribut in den angegebenen XML-Serializer.

Gilt für: