Bagikan melalui


SamlAttribute Kelas

Definisi

Mewakili atribut yang terkait dengan subjek SamlAttributeStatement.

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

Contoh

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

Keterangan

Kelas SamlAttribute sesuai dengan <saml:Attribute> elemen XML yang ditentukan dalam spesifikasi OASIS SAML 1.1.

Instans SamlAttribute berisi PossessProperty klaim untuk subjek SamlAttributeStatement. Misalnya, SamlAttribute mungkin berisi Over21 klaim, yang jenisnya akan ditentukan dalam Namespace properti dan yang sumber dayanya akan ditentukan sebagai anggota koleksi di AttributeValues properti . Ketika metode dipanggil CreatePolicy , klaim ini Over21 ditambahkan ke kebijakan otorisasi yang dikembalikan oleh dikembalikan dari oleh SamlAttributeStatement. AttributeValues Ketika properti berisi beberapa elemen, maka satu klaim dikembalikan untuk setiap elemen.

SamlAttribute posisi dalam hierarki objek SAML adalah:

SamlSecurityToken

SamlAssertion

SamlAttributeStatement

SamlAttribute

Konstruktor

SamlAttribute()

Menginisialisasi instans baru kelas SamlAttribute.

SamlAttribute(Claim)

Menginisialisasi instans SamlAttribute baru kelas menggunakan klaim yang ditentukan.

SamlAttribute(String, String, IEnumerable<String>)

Menginisialisasi instans SamlAttribute baru kelas menggunakan nama atribut, namespace XML, dan nilai atribut yang ditentukan.

Properti

AttributeValues

Mendapatkan kumpulan nilai atribut untuk atribut SAML.

AttributeValueXsiType

Mendapatkan atau mengatur nilai xsi:type yang terkandung dalam Atribut SAML.

IsReadOnly

Mendapatkan nilai yang menunjukkan apakah properti instans ini bersifat baca-saja.

Name

Mendapatkan atau mengatur nama atribut SAML.

Namespace

Mendapatkan atau mengatur namespace XML tempat nama atribut SAML ditentukan.

OriginalIssuer

Mendapatkan atau mengatur string yang mewakili OriginalIssuer dari atribut SAML.

Metode

Equals(Object)

Menentukan apakah objek yang ditentukan sama dengan objek saat ini.

(Diperoleh dari Object)
ExtractClaims()

Mendapatkan kumpulan klaim yang diwakili atribut SAML ini.

GetHashCode()

Berfungsi sebagai fungsi hash default.

(Diperoleh dari Object)
GetType()

Mendapatkan instans Type saat ini.

(Diperoleh dari Object)
MakeReadOnly()

Menyebabkan instans ini bersifat baca-saja.

MemberwiseClone()

Membuat salinan dangkal dari yang saat ini Object.

(Diperoleh dari Object)
ReadXml(XmlDictionaryReader, SamlSerializer, SecurityTokenSerializer, SecurityTokenResolver)

Membaca atribut SAML dari pembaca XML yang ditentukan.

ToString()

Mengembalikan string yang mewakili objek saat ini.

(Diperoleh dari Object)
WriteXml(XmlDictionaryWriter, SamlSerializer, SecurityTokenSerializer)

Menulis atribut SAML ke dalam serializer XML yang ditentukan.

Berlaku untuk