Partager via


SamlAttribute Classe

Définition

Représente un attribut associé à l’objet d’un SamlAttributeStatement.

public ref class SamlAttribute
public class SamlAttribute
type SamlAttribute = class
Public Class SamlAttribute
Héritage
SamlAttribute

Exemples

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

Remarques

La SamlAttribute classe correspond à l’élément <saml:Attribute> XML défini dans la spécification OASIS SAML 1.1.

Une SamlAttribute instance contient PossessProperty des revendications pour l’objet d’un SamlAttributeStatement. Par exemple, un SamlAttribute peut contenir une Over21 revendication, dont le type serait spécifié dans la propriété et dont la Namespace ressource serait spécifiée en tant que membre de la collection dans la AttributeValues propriété. Lorsque la CreatePolicy méthode est appelée, cette Over21 revendication est ajoutée à la stratégie d’autorisation retournée par le SamlAttributeStatement. Lorsque la AttributeValues propriété contient plusieurs éléments, une revendication est retournée pour chaque élément.

SamlAttribute la position dans la hiérarchie d’objets SAML est la suivante :

SamlSecurityToken

SamlAssertion

SamlAttributeStatement

SamlAttribute

Constructeurs

Nom Description
SamlAttribute()

Initialise une nouvelle instance de la classe SamlAttribute.

SamlAttribute(Claim)

Initialise une nouvelle instance de la classe à l’aide SamlAttribute de la revendication spécifiée.

SamlAttribute(String, String, IEnumerable<String>)

Initialise une nouvelle instance de la SamlAttribute classe à l’aide du nom d’attribut, de l’espace de noms XML et des valeurs d’attribut spécifiées.

Propriétés

Nom Description
AttributeValues

Obtient une collection de valeurs d’attribut pour l’attribut SAML.

AttributeValueXsiType

Obtient ou définit le xsi :type des valeurs contenues dans l’attribut SAML.

IsReadOnly

Obtient une valeur qui indique si les propriétés de cette instance sont en lecture seule.

Name

Obtient ou définit le nom de l’attribut SAML.

Namespace

Obtient ou définit l’espace de noms XML dans lequel le nom de l’attribut SAML est défini.

OriginalIssuer

Obtient ou définit la chaîne qui représente l’originalIssuer de l’attribut SAML.

Méthodes

Nom Description
Equals(Object)

Détermine si l’objet spécifié est égal à l’objet actuel.

(Hérité de Object)
ExtractClaims()

Obtient une collection de revendications que cet attribut SAML représente.

GetHashCode()

Sert de fonction de hachage par défaut.

(Hérité de Object)
GetType()

Obtient la Type de l’instance actuelle.

(Hérité de Object)
MakeReadOnly()

Provoque la lecture seule de cette instance.

MemberwiseClone()

Crée une copie superficielle du Objectactuel.

(Hérité de Object)
ReadXml(XmlDictionaryReader, SamlSerializer, SecurityTokenSerializer, SecurityTokenResolver)

Lit l’attribut SAML à partir du lecteur XML spécifié.

ToString()

Retourne une chaîne qui représente l’objet actuel.

(Hérité de Object)
WriteXml(XmlDictionaryWriter, SamlSerializer, SecurityTokenSerializer)

Écrit l’attribut SAML dans le sérialiseur XML spécifié.

S’applique à