Share via


SamlAttribute Třída

Definice

Představuje atribut, který je přidružen k předmětu objektu SamlAttributeStatement.

public ref class SamlAttribute
public class SamlAttribute
type SamlAttribute = class
Public Class SamlAttribute
Dědičnost
SamlAttribute

Příklady

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

Poznámky

Třída SamlAttribute odpovídá elementu <saml:Attribute> XML, který je definován ve specifikaci OASIS SAML 1.1.

Instance SamlAttribute obsahuje PossessProperty deklarace identity pro předmět objektu SamlAttributeStatement. Například SamlAttribute může obsahovat Over21 deklaraci identity, jejíž typ by byl zadán ve Namespace vlastnosti a jehož prostředek by byl zadán jako člen kolekce ve AttributeValues vlastnosti. Při zavolání CreatePolicy metody se tato Over21 deklarace identity přidá do zásad autorizace, které vrací vrácené metodou SamlAttributeStatement. AttributeValues Pokud vlastnost obsahuje více elementů, vrátí se pro každý prvek jedna deklarace identity.

SamlAttribute pozice v hierarchii objektů SAML je:

SamlSecurityToken

SamlAssertion

SamlAttributeStatement

SamlAttribute

Konstruktory

SamlAttribute()

Inicializuje novou instanci SamlAttribute třídy.

SamlAttribute(Claim)

Inicializuje novou instanci SamlAttribute třídy pomocí zadané deklarace identity.

SamlAttribute(String, String, IEnumerable<String>)

Inicializuje novou instanci třídy pomocí zadaného SamlAttribute názvu atributu, oboru názvů XML a hodnot atributů.

Vlastnosti

AttributeValues

Získá kolekci hodnot atributů pro atribut SAML.

AttributeValueXsiType

Získá nebo nastaví xsi:type hodnot obsažených v atributu SAML.

IsReadOnly

Získá hodnotu, která označuje, zda jsou vlastnosti této instance jen pro čtení.

Name

Získá nebo nastaví název atributu SAML.

Namespace

Získá nebo nastaví obor názvů XML, ve kterém je definován název atributu SAML.

OriginalIssuer

Získá nebo nastaví řetězec, který představuje OriginalIssuer atributu SAML.

Metody

Equals(Object)

Určí, zda se zadaný objekt rovná aktuálnímu objektu.

(Zděděno od Object)
ExtractClaims()

Získá kolekci deklarací identity, které tento atribut SAML představuje.

GetHashCode()

Slouží jako výchozí hashovací funkce.

(Zděděno od Object)
GetType()

Získá aktuální Type instanci.

(Zděděno od Object)
MakeReadOnly()

Způsobí, že tato instance bude jen pro čtení.

MemberwiseClone()

Vytvoří mělkou kopii aktuálního Objectsouboru .

(Zděděno od Object)
ReadXml(XmlDictionaryReader, SamlSerializer, SecurityTokenSerializer, SecurityTokenResolver)

Načte atribut SAML ze zadané čtečky XML.

ToString()

Vrátí řetězec, který představuje aktuální objekt.

(Zděděno od Object)
WriteXml(XmlDictionaryWriter, SamlSerializer, SecurityTokenSerializer)

Zapíše atribut SAML do zadaného serializátoru XML.

Platí pro