Sdílet prostřednictvím


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

SamlAttribute Třída 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 .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. CreatePolicy Při zavolání metody se tato Over21 deklarace identity přidá do zásady autorizace, která je vrácena z objektu SamlAttributeStatement. AttributeValues Pokud vlastnost obsahuje více prvků, je vrácena jedna deklarace identity pro každý prvek.

SamlAttribute pozice v hierarchii objektů SAML je:

SamlSecurityToken

SamlAssertion

SamlAttributeStatement

SamlAttribute

Konstruktory

Name Description
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 SamlAttribute třídy pomocí zadaného názvu atributu, oboru názvů XML a hodnoty atributů.

Vlastnosti

Name Description
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á určuje, zda vlastnosti této instance jsou 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

Name Description
Equals(Object)

Určuje, zda je zadaný objekt roven 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í funkce hash.

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

Získá Type aktuální instance.

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

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

MemberwiseClone()

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

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

Přeč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