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 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:
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. |