SamlAttribute Klas

Definitie

Vertegenwoordigt een kenmerk dat is gekoppeld aan het onderwerp van een SamlAttributeStatement.

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

Voorbeelden

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

Opmerkingen

De SamlAttribute klasse komt overeen met het <saml:Attribute> XML-element dat is gedefinieerd in de OASIS SAML 1.1-specificatie.

Een SamlAttribute exemplaar bevat PossessProperty claims voor het onderwerp van een SamlAttributeStatement. Een claim kan bijvoorbeeld SamlAttribute een Over21 claim bevatten waarvan het type wordt opgegeven in de Namespace eigenschap en waarvan de resource wordt opgegeven als lid van de verzameling in de AttributeValues eigenschap. Wanneer de CreatePolicy methode wordt aangeroepen, wordt deze Over21 claim toegevoegd aan het autorisatiebeleid dat wordt geretourneerd door geretourneerd door de SamlAttributeStatement. Wanneer de AttributeValues eigenschap meerdere elementen bevat, wordt één claim geretourneerd voor elk element.

SamlAttribute de positie in de SAML-objecthiërarchie is:

SamlSecurityToken

SamlAssertion

SamlAttributeStatement

SamlAttribute

Constructors

Name Description
SamlAttribute()

Initialiseert een nieuw exemplaar van de SamlAttribute klasse.

SamlAttribute(Claim)

Initialiseert een nieuw exemplaar van de SamlAttribute klasse met behulp van de opgegeven claim.

SamlAttribute(String, String, IEnumerable<String>)

Initialiseert een nieuw exemplaar van de SamlAttribute klasse met behulp van de opgegeven kenmerknaam, XML-naamruimte en kenmerkwaarden.

Eigenschappen

Name Description
AttributeValues

Hiermee haalt u een verzameling kenmerkwaarden op voor het SAML-kenmerk.

AttributeValueXsiType

Hiermee wordt het xsi:-type opgehaald of ingesteld van de waarden in het SAML-kenmerk.

IsReadOnly

Hiermee wordt een waarde opgehaald die aangeeft of de eigenschappen van dit exemplaar alleen-lezen zijn.

Name

Hiermee wordt de naam van het SAML-kenmerk opgehaald of ingesteld.

Namespace

Hiermee haalt u de XML-naamruimte op waarin de naam van het SAML-kenmerk is gedefinieerd.

OriginalIssuer

Hiermee haalt u de tekenreeks op die de OriginalIssuer van het SAML-kenmerk vertegenwoordigt of stelt u deze in.

Methoden

Name Description
Equals(Object)

Bepaalt of het opgegeven object gelijk is aan het huidige object.

(Overgenomen van Object)
ExtractClaims()

Hiermee haalt u een verzameling claims op die door dit SAML-kenmerk worden aangeduid.

GetHashCode()

Fungeert als de standaardhashfunctie.

(Overgenomen van Object)
GetType()

Hiermee haalt u de Type huidige instantie op.

(Overgenomen van Object)
MakeReadOnly()

Zorgt ervoor dat dit exemplaar het kenmerk Alleen-lezen heeft.

MemberwiseClone()

Hiermee maakt u een ondiepe kopie van de huidige Object.

(Overgenomen van Object)
ReadXml(XmlDictionaryReader, SamlSerializer, SecurityTokenSerializer, SecurityTokenResolver)

Leest het SAML-kenmerk van de opgegeven XML-lezer.

ToString()

Retourneert een tekenreeks die het huidige object vertegenwoordigt.

(Overgenomen van Object)
WriteXml(XmlDictionaryWriter, SamlSerializer, SecurityTokenSerializer)

Hiermee schrijft u het SAML-kenmerk naar de opgegeven XML-serialisatiefunctie.

Van toepassing op