Freigeben über


SamlAttribute Klasse

Definition

Stellt ein Attribut dar, das mit dem Subjekt einer SamlAttributeStatement verknüpft 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, die dem <saml:Attribute>-XML-Element entspricht, das in der OASIS SAML 1.1-Spezifikation definiert wurde.

Eine SamlAttribute-Instanz enthält PossessProperty-Ansprüche für das Subjekt einer SamlAttributeStatement. So kann ein SamlAttribute einen Over21-Anspruch enthalten, dessen Typ in der Namespace-Eigenschaft und dessen Ressource als Mitglied der Auflistung in der AttributeValues-Eigenschaft angegeben würde. Wenn die CreatePolicy-Methode aufgerufen wird, wird der Over21-Anspruch zur Autorisierungsrichtlinie hinzugefügt, die von der SamlAttributeStatement zurückgegeben wird. Wenn die AttributeValues-Eigenschaft dann mehrere Elemente enthält, wird ein Anspruch für jedes Element zurückgegeben.

SamlAttribute Die Position in der SAML-Objekthierarchie lautet:

SamlSecurityToken

SamlAssertion

SamlAttributeStatement

SamlAttribute

Konstruktoren

SamlAttribute()

Initialisiert eine neue Instanz der SamlAttribute-Klasse.

SamlAttribute(Claim)

Initialisiert eine neue Instanz der SamlAttribute-Klasse unter Verwendung des angegebenen Anspruchs.

SamlAttribute(String, String, IEnumerable<String>)

Initialisiert eine neue Instanz der SamlAttribute-Klasse unter Verwendung des angegebenen Namens, des XML-Namespace und der Attributwerte.

Eigenschaften

AttributeValues

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

AttributeValueXsiType

Übernimmt oder bestimmt den xsi:type der Werte im SAML-Attribut.

IsReadOnly

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

Name

Ruft den Namen des SAML-Attributs ab oder legt diesen fest.

Namespace

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

OriginalIssuer

Übernimmt oder bestimmt die Zeichenfolge, die den OriginalIssuer des SAML-Attributs darstellt.

Methoden

Equals(Object)

Bestimmt, ob das angegebene Objekt gleich dem aktuellen Objekt ist.

(Geerbt von Object)
ExtractClaims()

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

GetHashCode()

Fungiert als Standardhashfunktion.

(Geerbt von Object)
GetType()

Ruft den Type der aktuellen Instanz ab.

(Geerbt von Object)
MakeReadOnly()

Bewirkt, dass diese Instanz schreibgeschützt ist.

MemberwiseClone()

Erstellt eine flache Kopie des aktuellen Object.

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

Liest das SAML-Attribut vom 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 das angegebene XML-Serialisierungsprogramm.

Gilt für: