Partager via


SamlAttribute Classe

Définition

Représente un attribut associé au sujet d'une 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 classe SamlAttribute correspond à l'élément XML <saml:Attribute> défini dans la spécification SAML 1.1 OASIS.

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

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

SamlSecurityToken

SamlAssertion

SamlAttributeStatement

SamlAttribute

Constructeurs

SamlAttribute()

Initialise une nouvelle instance de la classe SamlAttribute.

SamlAttribute(Claim)

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

SamlAttribute(String, String, IEnumerable<String>)

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

Propriétés

AttributeValues

Obtient une collection de valeurs d’attributs 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

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()

Fait office de fonction de hachage par défaut.

(Hérité de Object)
GetType()

Obtient le Type de l'instance actuelle.

(Hérité de Object)
MakeReadOnly()

Provoque la mise en lecture seule de cette instance.

MemberwiseClone()

Crée une copie superficielle du Object actuel.

(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 à