Compartir vía


SamlAttribute Clase

Definición

Representa un atributo asociado al asunto de un SamlAttributeStatementobjeto .

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 SamlAttribute clase corresponde al <saml:Attribute> elemento XML que se define en la especificación OASIS SAML 1.1.

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

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

SamlSecurityToken

SamlAssertion

SamlAttributeStatement

SamlAttribute

Constructores

Nombre Description
SamlAttribute()

Inicializa una nueva instancia de la clase SamlAttribute.

SamlAttribute(Claim)

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

SamlAttribute(String, String, IEnumerable<String>)

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

Propiedades

Nombre Description
AttributeValues

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

AttributeValueXsiType

Obtiene o establece el tipo 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

Nombre Description
Equals(Object)

Determina si el objeto especificado es igual al objeto actual.

(Heredado de Object)
ExtractClaims()

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

GetHashCode()

Actúa como 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 Objectactual.

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

Lee el atributo SAML del lector 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