Поделиться через


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 соответствует элементу XML <saml:Attribute>, определенному в спецификации OASIS SAML 1.1.

Экземпляр SamlAttribute содержит утверждения PossessProperty для субъекта оператора SamlAttributeStatement. Например, в атрибуте SamlAttribute может содержаться утверждение Over21. Тип утверждения указывается в свойстве Namespace, а его ресурс указывается в качестве члена коллекции в свойстве AttributeValues. При вызове метода CreatePolicy утверждение Over21 добавляется в политику авторизации, которая возвращается оператором SamlAttributeStatement. Если свойство AttributeValues содержит несколько элементов, для каждого элемента возвращается по одному утверждению.

SamlAttribute позиция в иерархии объектов SAML:

SamlSecurityToken

SamlAssertion

SamlAttributeStatement

SamlAttribute

Конструкторы

SamlAttribute()

Инициализирует новый экземпляр класса SamlAttribute.

SamlAttribute(Claim)

Инициализирует новый экземпляр класса SamlAttribute, используя указанное утверждение.

SamlAttribute(String, String, IEnumerable<String>)

Инициализация нового экземпляра класса SamlAttribute, используя указанное имя атрибута, пространство имен XML и значения атрибута.

Свойства

AttributeValues

Возвращает коллекцию значений для атрибута SAML.

AttributeValueXsiType

Получает или задает xsi:type значений, содержащихся в атрибуте SAML.

IsReadOnly

Возвращает значение, определяющее, являются ли свойства данного экземпляра доступными только для чтения.

Name

Возвращает или задает имя атрибута SAML.

Namespace

Возвращает или задает пространство имен XML, в котором определяется атрибут SAML.

OriginalIssuer

Получает или задает строку, представляющую OriginalIssuer атрибута SAML.

Методы

Equals(Object)

Определяет, равен ли указанный объект текущему объекту.

(Унаследовано от Object)
ExtractClaims()

Возвращает коллекцию утверждений, которые представляет данный атрибут SAML.

GetHashCode()

Служит хэш-функцией по умолчанию.

(Унаследовано от Object)
GetType()

Возвращает объект Type для текущего экземпляра.

(Унаследовано от Object)
MakeReadOnly()

Делает этот экземпляр доступным только для чтения.

MemberwiseClone()

Создает неполную копию текущего объекта Object.

(Унаследовано от Object)
ReadXml(XmlDictionaryReader, SamlSerializer, SecurityTokenSerializer, SecurityTokenResolver)

Считывает атрибут SAML из указанного средства чтения XML.

ToString()

Возвращает строку, представляющую текущий объект.

(Унаследовано от Object)
WriteXml(XmlDictionaryWriter, SamlSerializer, SecurityTokenSerializer)

Записывает атрибут SAML в указанный XML-сериализатор.

Применяется к