다음을 통해 공유


SamlAttribute 클래스

정의

SamlAttributeStatement의 주체와 연결된 특성을 나타냅니다.

public ref class SamlAttribute
public class SamlAttribute
type SamlAttribute = class
Public Class SamlAttribute
상속
SamlAttribute

예제

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

설명

클래스는 SamlAttribute OASIS SAML 1.1 사양에 정의된 XML 요소에 해당 <saml:Attribute> 합니다.

SamlAttribute instance 주체에 대한 클레임을 SamlAttributeStatement포함합니다PossessProperty. 예를 들어 에는 SamlAttribute 클레임이 Over21 포함될 수 있습니다. 해당 형식은 속성에 Namespace 지정되고 해당 리소스는 속성에서 컬렉션 AttributeValues 의 멤버로 지정됩니다. 메서드가 CreatePolicy 호출되면 이 Over21 클레임은 에서 SamlAttributeStatement에서 반환하여 반환되는 권한 부여 정책에 추가됩니다. 속성에 AttributeValues 여러 요소가 포함된 경우 각 요소에 대해 하나의 클레임이 반환됩니다.

SamlAttribute SAML 개체 계층 구조의 위치는 다음과 같습니다.

SamlSecurityToken

SamlAssertion

SamlAttributeStatement

SamlAttribute

생성자

SamlAttribute()

SamlAttribute 클래스의 새 인스턴스를 초기화합니다.

SamlAttribute(Claim)

지정된 클레임을 사용하여 SamlAttribute 클래스의 새 인스턴스를 초기화합니다.

SamlAttribute(String, String, IEnumerable<String>)

지정된 특성 이름, XML 네임스페이스 및 특성 값을 사용하여 SamlAttribute 클래스의 새 인스턴스를 초기화합니다.

속성

AttributeValues

SAML 특성에 대한 특성 값의 컬렉션을 가져옵니다.

AttributeValueXsiType

SAML 특성에 포함된 값의 xsi:type을 가져오거나 설정합니다.

IsReadOnly

이 인스턴스의 속성이 읽기 전용인지 여부를 나타내는 값을 가져옵니다.

Name

SAML 특성의 이름을 가져오거나 설정합니다.

Namespace

SAML 특성의 이름이 정의된 XML 네임스페이스를 가져오거나 설정합니다.

OriginalIssuer

SAML 특성의 OriginalIssuer를 나타내는 문자열을 가져오거나 설정합니다.

메서드

Equals(Object)

지정된 개체가 현재 개체와 같은지 확인합니다.

(다음에서 상속됨 Object)
ExtractClaims()

이 SAML 특성이 나타내는 클레임의 컬렉션을 가져옵니다.

GetHashCode()

기본 해시 함수로 작동합니다.

(다음에서 상속됨 Object)
GetType()

현재 인스턴스의 Type을 가져옵니다.

(다음에서 상속됨 Object)
MakeReadOnly()

이 인스턴스를 읽기 전용으로 만듭니다.

MemberwiseClone()

현재 Object의 단순 복사본을 만듭니다.

(다음에서 상속됨 Object)
ReadXml(XmlDictionaryReader, SamlSerializer, SecurityTokenSerializer, SecurityTokenResolver)

지정된 XML 판독기에서 SAML 특성을 읽습니다.

ToString()

현재 개체를 나타내는 문자열을 반환합니다.

(다음에서 상속됨 Object)
WriteXml(XmlDictionaryWriter, SamlSerializer, SecurityTokenSerializer)

지정된 XML serializer에 SAML 특성을 씁니다.

적용 대상