Compartilhar via


SamlAttribute Classe

Definição

Representa um atributo associado à entidade de um SamlAttributeStatement.

public ref class SamlAttribute
public class SamlAttribute
type SamlAttribute = class
Public Class SamlAttribute
Herança
SamlAttribute

Exemplos

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

Comentários

A SamlAttribute classe corresponde ao <saml:Attribute> elemento XML definido na especificação OASIS SAML 1.1.

Uma SamlAttribute instância contém PossessProperty declarações para o assunto de um SamlAttributeStatement. Por exemplo, um SamlAttribute pode conter uma declaração Over21 , cujo tipo seria especificado na Namespace propriedade e cujo recurso seria especificado como um membro da coleção na AttributeValues propriedade . Quando o CreatePolicy método é chamado, essa Over21 declaração é adicionada à política de autorização retornada pelo retornado pelo SamlAttributeStatement. Quando a AttributeValues propriedade contém vários elementos, uma declaração é retornada para cada elemento.

SamlAttribute A posição na hierarquia de objetos SAML é:

SamlSecurityToken

SamlAssertion

SamlAttributeStatement

SamlAttribute

Construtores

SamlAttribute()

Inicializa uma nova instância da classe SamlAttribute.

SamlAttribute(Claim)

Inicializa uma nova instância da classe SamlAttribute usando a declaração especificada.

SamlAttribute(String, String, IEnumerable<String>)

Inicializa uma nova instância da classe SamlAttribute usando o nome do atributo, o namespace de XML e valores de atributo especificados.

Propriedades

AttributeValues

Obtém uma coleção de valores de atributo para o atributo SAML.

AttributeValueXsiType

Obtém ou define o xsi:type dos valores contidos no Atributo SAML.

IsReadOnly

Obtém um valor que indica se as propriedades dessa instância são somente leitura.

Name

Obtém ou define o nome do atributo SAML.

Namespace

Obtém ou define o namespace de XML no qual o nome do atributo SAML é definido.

OriginalIssuer

Obtém ou define a cadeia de caracteres que representa o OriginalIssuer do atributo SAML.

Métodos

Equals(Object)

Determina se o objeto especificado é igual ao objeto atual.

(Herdado de Object)
ExtractClaims()

Obtém uma coleção de declarações que esse atributo SAML representa.

GetHashCode()

Serve como a função de hash padrão.

(Herdado de Object)
GetType()

Obtém o Type da instância atual.

(Herdado de Object)
MakeReadOnly()

Faz com que essa instância seja somente leitura.

MemberwiseClone()

Cria uma cópia superficial do Object atual.

(Herdado de Object)
ReadXml(XmlDictionaryReader, SamlSerializer, SecurityTokenSerializer, SecurityTokenResolver)

Lê o atributo SAML do leitor XML especificado.

ToString()

Retorna uma cadeia de caracteres que representa o objeto atual.

(Herdado de Object)
WriteXml(XmlDictionaryWriter, SamlSerializer, SecurityTokenSerializer)

Grava o atributo SAML no serializador XML especificado.

Aplica-se a