Udostępnij za pośrednictwem


SamlAttribute Klasa

Definicja

Reprezentuje atrybut skojarzony z podmiotem elementu SamlAttributeStatement.

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

Przykłady

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

Uwagi

Klasa SamlAttribute odpowiada elementowi XML zdefiniowanemu <saml:Attribute> w specyfikacji OASIS SAML 1.1.

Wystąpienie SamlAttribute zawiera PossessProperty oświadczenia dla podmiotu .SamlAttributeStatement Na przykład może SamlAttribute zawierać Over21 oświadczenie, którego typ zostanie określony we Namespace właściwości i którego zasób zostanie określony jako element członkowski kolekcji we AttributeValues właściwości. Po wywołaniu CreatePolicy metody to Over21 oświadczenie jest dodawane do zasad autoryzacji zwracanych przez element zwrócony przez SamlAttributeStatementelement . AttributeValues Gdy właściwość zawiera wiele elementów, jedno oświadczenie jest zwracane dla każdego elementu.

SamlAttribute pozycja w hierarchii obiektów SAML to:

SamlSecurityToken

SamlAssertion

SamlAttributeStatement

SamlAttribute

Konstruktory

SamlAttribute()

Inicjuje nowe wystąpienie klasy SamlAttribute.

SamlAttribute(Claim)

Inicjuje SamlAttribute nowe wystąpienie klasy przy użyciu określonego oświadczenia.

SamlAttribute(String, String, IEnumerable<String>)

Inicjuje nowe wystąpienie klasy przy użyciu określonej nazwy atrybutu SamlAttribute , przestrzeni nazw XML i wartości atrybutów.

Właściwości

AttributeValues

Pobiera kolekcję wartości atrybutów dla atrybutu SAML.

AttributeValueXsiType

Pobiera lub ustawia xsi:type wartości zawartych w atrybucie SAML.

IsReadOnly

Pobiera wartość wskazującą, czy właściwości tego wystąpienia są tylko do odczytu.

Name

Pobiera lub ustawia nazwę atrybutu SAML.

Namespace

Pobiera lub ustawia przestrzeń nazw XML, w której zdefiniowano nazwę atrybutu SAML.

OriginalIssuer

Pobiera lub ustawia ciąg reprezentujący originalIssuer atrybutu SAML.

Metody

Equals(Object)

Określa, czy dany obiekt jest taki sam, jak bieżący obiekt.

(Odziedziczone po Object)
ExtractClaims()

Pobiera kolekcję oświadczeń, które reprezentuje ten atrybut SAML.

GetHashCode()

Służy jako domyślna funkcja skrótu.

(Odziedziczone po Object)
GetType()

Type Pobiera bieżące wystąpienie.

(Odziedziczone po Object)
MakeReadOnly()

Powoduje, że to wystąpienie jest tylko do odczytu.

MemberwiseClone()

Tworzy płytkią kopię bieżącego Objectelementu .

(Odziedziczone po Object)
ReadXml(XmlDictionaryReader, SamlSerializer, SecurityTokenSerializer, SecurityTokenResolver)

Odczytuje atrybut SAML z określonego czytnika XML.

ToString()

Zwraca ciąg reprezentujący bieżący obiekt.

(Odziedziczone po Object)
WriteXml(XmlDictionaryWriter, SamlSerializer, SecurityTokenSerializer)

Zapisuje atrybut SAML w określonym serializatorze XML.

Dotyczy