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:
Конструкторы
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-сериализатор. |