Compartir a través de


SamlAttribute Clase

Definición

Representa un atributo que está asociado al sujeto de SamlAttributeStatement.

public ref class SamlAttribute
public class SamlAttribute
type SamlAttribute = class
Public Class SamlAttribute
Herencia
SamlAttribute

Ejemplos

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

Comentarios

La clase SamlAttribute corresponde al elemento XML <saml:Attribute> que se define en la especificación de OASIS SAML 1.1.

Una instancia SamlAttribute contiene PossessProperty notificaciones para el sujeto de SamlAttributeStatement. Por ejemplo, SamlAttribute podría contener una notificación Over21, cuyo tipo se especificaría en la propiedad Namespace y cuyo recurso se especificaría como un miembro de la colección en la propiedad AttributeValues. Cuando se llama al método CreatePolicy, Over21 la notificación se agrega a la directiva de la autorización por la que se devuelve devuelta por SamlAttributeStatement. Cuando la propiedad AttributeValues contiene elementos múltiples, después una notificación se devuelve para cada elemento.

SamlAttribute la posición de la jerarquía de objetos SAML es:

SamlSecurityToken

SamlAssertion

SamlAttributeStatement

SamlAttribute

Constructores

SamlAttribute()

Inicializa una nueva instancia de la clase SamlAttribute.

SamlAttribute(Claim)

Inicializa una instancia nueva de la clase SamlAttribute con la notificación especificada.

SamlAttribute(String, String, IEnumerable<String>)

Inicializa una nueva instancia de la clase SamlAttribute utilizando el nombre de atributo especificado, el espacio de nombres y los valores de atributo.

Propiedades

AttributeValues

Obtiene una colección de valores de atributo para el atributo SAML.

AttributeValueXsiType

Obtiene o establece el xsi:type de los valores contenidos en el atributo SAML.

IsReadOnly

Obtiene un valor que indica si las propiedades de esta instancia son de solo lectura.

Name

Obtiene o establece el nombre del atributo SAML.

Namespace

Obtiene o establece el espacio de nombres XML en el que se define el nombre del atributo SAML.

OriginalIssuer

Obtiene o establece la cadena que representa el OriginalIssuer del atributo SAML.

Métodos

Equals(Object)

Determina si el objeto especificado es igual que el objeto actual.

(Heredado de Object)
ExtractClaims()

Obtiene una colección de notificaciones que representa este atributo SAML.

GetHashCode()

Sirve como la función hash predeterminada.

(Heredado de Object)
GetType()

Obtiene el Type de la instancia actual.

(Heredado de Object)
MakeReadOnly()

Hace que esta instancia sea de solo lectura.

MemberwiseClone()

Crea una copia superficial del Object actual.

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

Lee el atributo SAML del lector de XML especificado.

ToString()

Devuelve una cadena que representa el objeto actual.

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

Escribe el atributo SAML en el serializador XML especificado.

Se aplica a