SamlAttribute Clase
Definición
Importante
Parte de la información hace referencia a la versión preliminar del producto, que puede haberse modificado sustancialmente antes de lanzar la versión definitiva. Microsoft no otorga ninguna garantía, explícita o implícita, con respecto a la información proporcionada aquí.
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:
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. |