SamlAttribute 类
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
表示与 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 规范中定义的 <saml:Attribute>
XML 元素。
SamlAttribute 实例包含 PossessProperty 的主题的 SamlAttributeStatement 声明。 例如,SamlAttribute 可能包含一个 Over21
声明,其类型在 Namespace 属性中指定,其资源作为集合的成员在 AttributeValues 属性中指定。 调用 CreatePolicy 方法时,此 Over21
声明被添加到由 SamlAttributeStatement 返回的授权策略中。 如果 AttributeValues 属性包含多个元素,则为每一个元素返回一个声明。
SamlAttribute SAML 对象层次结构中的位置为:
构造函数
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 特性原始颁发者的字符串的名称。 |
方法
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) |
将 SAML 属性写入指定的 XML 序列化程序。 |