Share via


SamlAttribute Sınıf

Tanım

bir öğesinin konusuyla ilişkili bir SamlAttributeStatementözniteliği temsil eder.

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

Örnekler

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

Açıklamalar

sınıfı, SamlAttribute OASIS SAML 1.1 belirtiminde tanımlanan XML öğesine karşılık gelir <saml:Attribute> .

Bir SamlAttribute örnek, konusu SamlAttributeStatementiçin talepler içerirPossessProperty. Örneğin, türü SamlAttribute özelliğinde belirtilecek olan ve kaynağı özelliğindeki koleksiyonun NamespaceAttributeValues bir üyesi olarak belirtilecek olan bir talep içerebilirOver21. CreatePolicy yöntemi çağrıldığında, bu Over21 talep tarafından döndürülen yetkilendirme ilkesine SamlAttributeStatementeklenir. Özelliği birden çok öğe içerdiğinde AttributeValues , her öğe için bir talep döndürülür.

SamlAttribute SAML nesne hiyerarşisindeki konum:

SamlSecurityToken

SamlAssertion

SamlAttributeStatement

SamlAttribute

Oluşturucular

SamlAttribute()

SamlAttribute sınıfının yeni bir örneğini başlatır.

SamlAttribute(Claim)

Belirtilen talebi kullanarak sınıfının yeni bir örneğini SamlAttribute başlatır.

SamlAttribute(String, String, IEnumerable<String>)

Belirtilen öznitelik adını, XML ad alanını ve öznitelik değerlerini kullanarak sınıfının yeni bir örneğini SamlAttribute başlatır.

Özellikler

AttributeValues

SAML özniteliği için öznitelik değerleri koleksiyonunu alır.

AttributeValueXsiType

SAML Özniteliğinde yer alan değerlerin xsi:type değerini alır veya ayarlar.

IsReadOnly

Bu örneğin özelliklerinin salt okunur olup olmadığını gösteren bir değer alır.

Name

SAML özniteliğinin adını alır veya ayarlar.

Namespace

SAML özniteliğinin adının tanımlandığı XML ad alanını alır veya ayarlar.

OriginalIssuer

SAML özniteliğinin OriginalIssuer'ını temsil eden dizeyi alır veya ayarlar.

Yöntemler

Equals(Object)

Belirtilen nesnenin geçerli nesneye eşit olup olmadığını belirler.

(Devralındığı yer: Object)
ExtractClaims()

Bu SAML özniteliğinin temsil eden talep koleksiyonunu alır.

GetHashCode()

Varsayılan karma işlevi işlevi görür.

(Devralındığı yer: Object)
GetType()

Type Geçerli örneğini alır.

(Devralındığı yer: Object)
MakeReadOnly()

Bu örneğin salt okunur olmasını neden olur.

MemberwiseClone()

Geçerli Objectöğesinin sığ bir kopyasını oluşturur.

(Devralındığı yer: Object)
ReadXml(XmlDictionaryReader, SamlSerializer, SecurityTokenSerializer, SecurityTokenResolver)

Belirtilen XML okuyucusundan SAML özniteliğini okur.

ToString()

Geçerli nesneyi temsil eden dizeyi döndürür.

(Devralındığı yer: Object)
WriteXml(XmlDictionaryWriter, SamlSerializer, SecurityTokenSerializer)

SAML özniteliğini belirtilen XML seri hale getiricisine yazar.

Şunlara uygulanır