Condividi tramite


SamlAttribute Classe

Definizione

Rappresenta un attributo associato all'oggetto di una classe SamlAttributeStatement.

public ref class SamlAttribute
public class SamlAttribute
type SamlAttribute = class
Public Class SamlAttribute
Ereditarietà
SamlAttribute

Esempio

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

Commenti

La classe SamlAttribute corrisponde all'elemento XML <saml:Attribute> definito nella specifica OASIS SAML 1.1.

Istanza SamlAttribute contenente attestazioni PossessProperty per l'oggetto di una classe SamlAttributeStatement. Una classe SamlAttribute, ad esempio, potrebbe contenere un'attestazione Over21, il cui tipo verrebbe specificato nella proprietà Namespace e la cui risorsa verrebbe specificata come un membro della raccolta nella proprietà AttributeValues. Quando viene chiamato il metodo CreatePolicy, l'attestazione Over21 viene aggiunta ai criteri di autorizzazione restituiti dalla classe SamlAttributeStatement. Quando la proprietà AttributeValues contiene più elementi, per ciascuno di essi viene restituita un'attestazione.

SamlAttribute la posizione nella gerarchia degli oggetti SAML è:

SamlSecurityToken

SamlAssertion

SamlAttributeStatement

SamlAttribute

Costruttori

SamlAttribute()

Inizializza una nuova istanza della classe SamlAttribute.

SamlAttribute(Claim)

Inizializza una nuova istanza della classe SamlAttribute utilizzando l'attestazione specificata.

SamlAttribute(String, String, IEnumerable<String>)

Inizializza una nuova istanza della classe SamlAttribute utilizzando il nome di attributo specificato, lo spazio dei nomi XML e valori di attributo.

Proprietà

AttributeValues

Ottiene una raccolta di valori di attributo per l'attributo SAML.

AttributeValueXsiType

Ottiene o imposta xsi:type dei valori contenuti nell'attributo SAML.

IsReadOnly

Ottiene un valore che indica se le proprietà di questa istanza sono di sola lettura.

Name

Ottiene o imposta il nome dell'attributo SAML.

Namespace

Ottiene o imposta lo spazio dei nomi XML in cui è definito il nome dell'attributo SAML.

OriginalIssuer

Ottiene o imposta la stringa che rappresenta OriginalIssuer dell'attributo SAML.

Metodi

Equals(Object)

Determina se l'oggetto specificato è uguale all'oggetto corrente.

(Ereditato da Object)
ExtractClaims()

Ottiene una raccolta di attestazioni rappresentate da questo attributo SAML.

GetHashCode()

Funge da funzione hash predefinita.

(Ereditato da Object)
GetType()

Ottiene l'oggetto Type dell'istanza corrente.

(Ereditato da Object)
MakeReadOnly()

Modifica questa istanza in modo che sia di sola lettura.

MemberwiseClone()

Crea una copia superficiale dell'oggetto Object corrente.

(Ereditato da Object)
ReadXml(XmlDictionaryReader, SamlSerializer, SecurityTokenSerializer, SecurityTokenResolver)

Legge l'attributo SAML dal lettore XML specificato.

ToString()

Restituisce una stringa che rappresenta l'oggetto corrente.

(Ereditato da Object)
WriteXml(XmlDictionaryWriter, SamlSerializer, SecurityTokenSerializer)

Scrive l'attributo SAML nel serializzatore XML specificato.

Si applica a