SamlAttribute Klass
Definition
Viktigt
En del information gäller för förhandsversionen av en produkt och kan komma att ändras avsevärt innan produkten blir allmänt tillgänglig. Microsoft lämnar inga garantier, uttryckliga eller underförstådda, avseende informationen som visas här.
Representerar ett attribut som är associerat med ämnet för en SamlAttributeStatement.
public ref class SamlAttribute
public class SamlAttribute
type SamlAttribute = class
Public Class SamlAttribute
- Arv
-
SamlAttribute
Exempel
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
Kommentarer
Klassen SamlAttribute motsvarar <saml:Attribute> XML-elementet som definieras i OASIS SAML 1.1-specifikationen.
En SamlAttribute instans innehåller PossessProperty anspråk för ämnet för en SamlAttributeStatement. En kan till exempel SamlAttribute innehålla ett Over21 anspråk, vars typ skulle anges i Namespace egenskapen och vars resurs skulle anges som medlem i samlingen i AttributeValues egenskapen.
CreatePolicy När metoden anropas läggs det här Over21 anspråket till i auktoriseringsprincipen som returneras av returneras från av SamlAttributeStatement. När egenskapen AttributeValues innehåller flera element returneras ett anspråk för varje element.
SamlAttribute positionen i SAML-objekthierarkin är:
Konstruktorer
| Name | Description |
|---|---|
| SamlAttribute() |
Initierar en ny instans av SamlAttribute klassen. |
| SamlAttribute(Claim) |
Initierar en ny instans av SamlAttribute klassen med det angivna anspråket. |
| SamlAttribute(String, String, IEnumerable<String>) |
Initierar en ny instans av SamlAttribute klassen med det angivna attributnamnet, XML-namnområdet och attributvärdena. |
Egenskaper
| Name | Description |
|---|---|
| AttributeValues |
Hämtar en samling attributvärden för SAML-attributet. |
| AttributeValueXsiType |
Hämtar eller anger xsi:type för värdena i SAML-attributet. |
| IsReadOnly |
Hämtar ett värde som anger om egenskaperna för den här instansen är skrivskyddade. |
| Name |
Hämtar eller anger namnet på SAML-attributet. |
| Namespace |
Hämtar eller anger DET XML-namnområde där namnet på SAML-attributet definieras. |
| OriginalIssuer |
Hämtar eller anger strängen som representerar OriginalIssuer för SAML-attributet. |
Metoder
| Name | Description |
|---|---|
| Equals(Object) |
Avgör om det angivna objektet är lika med det aktuella objektet. (Ärvd från Object) |
| ExtractClaims() |
Hämtar en samling anspråk som det här SAML-attributet representerar. |
| GetHashCode() |
Fungerar som standard-hash-funktion. (Ärvd från Object) |
| GetType() |
Hämtar den aktuella instansen Type . (Ärvd från Object) |
| MakeReadOnly() |
Gör att den här instansen är skrivskyddad. |
| MemberwiseClone() |
Skapar en ytlig kopia av den aktuella Object. (Ärvd från Object) |
| ReadXml(XmlDictionaryReader, SamlSerializer, SecurityTokenSerializer, SecurityTokenResolver) |
Läser SAML-attributet från den angivna XML-läsaren. |
| ToString() |
Returnerar en sträng som representerar det aktuella objektet. (Ärvd från Object) |
| WriteXml(XmlDictionaryWriter, SamlSerializer, SecurityTokenSerializer) |
Skriver SAML-attributet till den angivna XML-serialiseraren. |