SamlAttribute Klass

Definition

Representerar ett attribut som är associerat med ämnet för en SamlAttributeStatement.

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

Exempel

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

Kommentarer

Klassen SamlAttribute motsvarar <saml:Attribute> XML-elementet som definieras i OASIS SAML 1.1-specifikationen.

En SamlAttribute instans innehåller PossessProperty anspråk för ämnet för en SamlAttributeStatement. En kan till exempel SamlAttribute innehålla ett Over21 anspråk, vars typ skulle anges i Namespace egenskapen och vars resurs skulle anges som medlem i samlingen i AttributeValues egenskapen. CreatePolicy När metoden anropas läggs det här Over21 anspråket till i auktoriseringsprincipen som returneras av returneras från av SamlAttributeStatement. När egenskapen AttributeValues innehåller flera element returneras ett anspråk för varje element.

SamlAttribute positionen i SAML-objekthierarkin är:

SamlSecurityToken

SamlAssertion

SamlAttributeStatement

SamlAttribute

Konstruktorer

Name Description
SamlAttribute()

Initierar en ny instans av SamlAttribute klassen.

SamlAttribute(Claim)

Initierar en ny instans av SamlAttribute klassen med det angivna anspråket.

SamlAttribute(String, String, IEnumerable<String>)

Initierar en ny instans av SamlAttribute klassen med det angivna attributnamnet, XML-namnområdet och attributvärdena.

Egenskaper

Name Description
AttributeValues

Hämtar en samling attributvärden för SAML-attributet.

AttributeValueXsiType

Hämtar eller anger xsi:type för värdena i SAML-attributet.

IsReadOnly

Hämtar ett värde som anger om egenskaperna för den här instansen är skrivskyddade.

Name

Hämtar eller anger namnet på SAML-attributet.

Namespace

Hämtar eller anger DET XML-namnområde där namnet på SAML-attributet definieras.

OriginalIssuer

Hämtar eller anger strängen som representerar OriginalIssuer för SAML-attributet.

Metoder

Name Description
Equals(Object)

Avgör om det angivna objektet är lika med det aktuella objektet.

(Ärvd från Object)
ExtractClaims()

Hämtar en samling anspråk som det här SAML-attributet representerar.

GetHashCode()

Fungerar som standard-hash-funktion.

(Ärvd från Object)
GetType()

Hämtar den aktuella instansen Type .

(Ärvd från Object)
MakeReadOnly()

Gör att den här instansen är skrivskyddad.

MemberwiseClone()

Skapar en ytlig kopia av den aktuella Object.

(Ärvd från Object)
ReadXml(XmlDictionaryReader, SamlSerializer, SecurityTokenSerializer, SecurityTokenResolver)

Läser SAML-attributet från den angivna XML-läsaren.

ToString()

Returnerar en sträng som representerar det aktuella objektet.

(Ärvd från Object)
WriteXml(XmlDictionaryWriter, SamlSerializer, SecurityTokenSerializer)

Skriver SAML-attributet till den angivna XML-serialiseraren.

Gäller för