WSSecurityTokenSerializer 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.
Klassen som används för serialisering och deserialisering av säkerhetstoken, säkerhetsnyckelidentifierare och satser för säkerhetsnyckelidentifierare som definierats i WS-Security, WS-Trust och WS-SecureConversation säkerhetsspecifikationer.
public ref class WSSecurityTokenSerializer : System::IdentityModel::Selectors::SecurityTokenSerializer
public class WSSecurityTokenSerializer : System.IdentityModel.Selectors.SecurityTokenSerializer
type WSSecurityTokenSerializer = class
inherit SecurityTokenSerializer
Public Class WSSecurityTokenSerializer
Inherits SecurityTokenSerializer
- Arv
Exempel
Följande kod visar en anpassad åsidosättning av den här klassen.
public class CreditCardSecurityTokenSerializer : WSSecurityTokenSerializer
{
public CreditCardSecurityTokenSerializer(SecurityTokenVersion version) : base() { }
protected override bool CanReadTokenCore(XmlReader reader)
{
XmlDictionaryReader localReader = XmlDictionaryReader.CreateDictionaryReader(reader);
if (reader == null)
{
throw new ArgumentNullException("reader");
}
if (reader.IsStartElement(Constants.CreditCardTokenName, Constants.CreditCardTokenNamespace))
{
return true;
}
return base.CanReadTokenCore(reader);
}
protected override SecurityToken ReadTokenCore(XmlReader reader, SecurityTokenResolver tokenResolver)
{
if (reader == null)
{
throw new ArgumentNullException("reader");
}
if (reader.IsStartElement(Constants.CreditCardTokenName, Constants.CreditCardTokenNamespace))
{
string id = reader.GetAttribute(Constants.Id, Constants.WsUtilityNamespace);
reader.ReadStartElement();
// Read the credit card number.
string creditCardNumber = reader.ReadElementString(Constants.CreditCardNumberElementName, Constants.CreditCardTokenNamespace);
// Read the expiration date.
string expirationTimeString = reader.ReadElementString(Constants.CreditCardExpirationElementName, Constants.CreditCardTokenNamespace);
DateTime expirationTime = XmlConvert.ToDateTime(expirationTimeString, XmlDateTimeSerializationMode.Utc);
// Read the issuer of the credit card.
string creditCardIssuer = reader.ReadElementString(Constants.CreditCardIssuerElementName, Constants.CreditCardTokenNamespace);
reader.ReadEndElement();
CreditCardInfo cardInfo = new CreditCardInfo(creditCardNumber, creditCardIssuer, expirationTime);
return new CreditCardToken(cardInfo, id);
}
else
{
return WSSecurityTokenSerializer.DefaultInstance.ReadToken(reader, tokenResolver);
}
}
protected override bool CanWriteTokenCore(SecurityToken token)
{
if (token is CreditCardToken)
{
return true;
}
else
{
return base.CanWriteTokenCore(token);
}
}
protected override void WriteTokenCore(XmlWriter writer, SecurityToken token)
{
if (writer == null)
{
throw new ArgumentNullException("writer");
}
if (token == null)
{
throw new ArgumentNullException("token");
}
CreditCardToken c = token as CreditCardToken;
if (c != null)
{
writer.WriteStartElement(Constants.CreditCardTokenPrefix, Constants.CreditCardTokenName, Constants.CreditCardTokenNamespace);
writer.WriteAttributeString(Constants.WsUtilityPrefix, Constants.Id, Constants.WsUtilityNamespace, token.Id);
writer.WriteElementString(Constants.CreditCardNumberElementName, Constants.CreditCardTokenNamespace, c.CardInfo.CardNumber);
writer.WriteElementString(Constants.CreditCardExpirationElementName, Constants.CreditCardTokenNamespace, XmlConvert.ToString(c.CardInfo.ExpirationDate, XmlDateTimeSerializationMode.Utc));
writer.WriteElementString(Constants.CreditCardIssuerElementName, Constants.CreditCardTokenNamespace, c.CardInfo.CardIssuer);
writer.WriteEndElement();
writer.Flush();
}
else
{
base.WriteTokenCore(writer, token);
}
}
}
Public Class CreditCardSecurityTokenSerializer
Inherits WSSecurityTokenSerializer
Public Sub New(ByVal version As SecurityTokenVersion)
MyBase.New()
End Sub
Protected Overrides Function CanReadTokenCore(ByVal reader As XmlReader) As Boolean
Dim localReader = XmlDictionaryReader.CreateDictionaryReader(reader)
If reader Is Nothing Then
Throw New ArgumentNullException("reader")
End If
If reader.IsStartElement(Constants.CreditCardTokenName, _
Constants.CreditCardTokenNamespace) Then
Return True
End If
Return MyBase.CanReadTokenCore(reader)
End Function
Protected Overrides Function ReadTokenCore(ByVal reader As XmlReader, _
ByVal tokenResolver As SecurityTokenResolver) As SecurityToken
If reader Is Nothing Then
Throw New ArgumentNullException("reader")
End If
If reader.IsStartElement(Constants.CreditCardTokenName, _
Constants.CreditCardTokenNamespace) Then
Dim id = reader.GetAttribute(Constants.Id, _
Constants.WsUtilityNamespace)
reader.ReadStartElement()
' Read the credit card number.
Dim creditCardNumber = reader.ReadElementString(Constants.CreditCardNumberElementName, _
Constants.CreditCardTokenNamespace)
' Read the expiration date.
Dim expirationTimeString = reader.ReadElementString(Constants.CreditCardExpirationElementName, _
Constants.CreditCardTokenNamespace)
Dim expirationTime As DateTime = XmlConvert.ToDateTime(expirationTimeString, _
XmlDateTimeSerializationMode.Utc)
' Read the issuer of the credit card.
Dim creditCardIssuer = reader.ReadElementString(Constants.CreditCardIssuerElementName, _
Constants.CreditCardTokenNamespace)
reader.ReadEndElement()
Dim cardInfo As New CreditCardInfo(creditCardNumber, _
creditCardIssuer, _
expirationTime)
Return New CreditCardToken(cardInfo, id)
Else
Return WSSecurityTokenSerializer.DefaultInstance.ReadToken(reader, _
tokenResolver)
End If
End Function
Protected Overrides Function CanWriteTokenCore(ByVal token As SecurityToken) As Boolean
If TypeOf token Is CreditCardToken Then
Return True
Else
Return MyBase.CanWriteTokenCore(token)
End If
End Function
Protected Overrides Sub WriteTokenCore(ByVal writer As XmlWriter, _
ByVal token As SecurityToken)
If writer Is Nothing Then
Throw New ArgumentNullException("writer")
End If
If token Is Nothing Then
Throw New ArgumentNullException("token")
End If
Dim c = TryCast(token, CreditCardToken)
If c IsNot Nothing Then
With writer
.WriteStartElement(Constants.CreditCardTokenPrefix, _
Constants.CreditCardTokenName, _
Constants.CreditCardTokenNamespace)
.WriteAttributeString(Constants.WsUtilityPrefix, _
Constants.Id, _
Constants.WsUtilityNamespace, _
token.Id)
.WriteElementString(Constants.CreditCardNumberElementName, _
Constants.CreditCardTokenNamespace, _
c.CardInfo.CardNumber)
.WriteElementString(Constants.CreditCardExpirationElementName, _
Constants.CreditCardTokenNamespace, _
XmlConvert.ToString(c.CardInfo.ExpirationDate, _
XmlDateTimeSerializationMode.Utc))
.WriteElementString(Constants.CreditCardIssuerElementName, _
Constants.CreditCardTokenNamespace, _
c.CardInfo.CardIssuer)
.WriteEndElement()
.Flush()
End With
Else
MyBase.WriteTokenCore(writer, token)
End If
End Sub
End Class
Konstruktorer
Egenskaper
| Name | Description |
|---|---|
| DefaultInstance |
Hämtar en standardinstans av den här klassen. |
| EmitBspRequiredAttributes |
Hämtar ett värde som anger om BSP-obligatoriska attribut ska genereras. |
| MaximumKeyDerivationLabelLength |
Hämtar den maximala längden på nyckelhärledningsetiketten. |
| MaximumKeyDerivationNonceLength |
Hämtar maximal nyckelhärlednings nonce-längd. |
| MaximumKeyDerivationOffset |
Hämtar den maximala nyckelavledningsförskjutningen. |
| SecurityVersion |
Hämtar säkerhetsversionen. |
Metoder
| Name | Description |
|---|---|
| CanReadKeyIdentifier(XmlReader) |
Avgör om den här serialiseraren kan läsa elementet |
| CanReadKeyIdentifierClause(XmlReader) |
Avgör om den här serialiseraren kan läsa en sats i ett |
| CanReadKeyIdentifierClauseCore(XmlReader) |
Hämtar ett värde som anger om nyckelidentifierarens satskärna kan läsas med den angivna läsaren. |
| CanReadKeyIdentifierCore(XmlReader) |
Hämtar ett värde som anger om nyckelidentifierarkärnan kan läsas med den angivna läsaren. |
| CanReadToken(XmlReader) |
Avgör om den här serialiseraren kan läsa säkerhetstoken som pekas på av den angivna XML-läsaren. (Ärvd från SecurityTokenSerializer) |
| CanReadTokenCore(XmlReader) |
Hämtar ett värde som anger om tokenkärnan kan läsas med den angivna läsaren. |
| CanWriteKeyIdentifier(SecurityKeyIdentifier) |
Avgör om serialiseraren kan skriva den angivna nyckelidentifieraren. (Ärvd från SecurityTokenSerializer) |
| CanWriteKeyIdentifierClause(SecurityKeyIdentifierClause) |
Avgör om den här serialiseraren kan skriva den angivna nyckelidentifierarsatsen. (Ärvd från SecurityTokenSerializer) |
| CanWriteKeyIdentifierClauseCore(SecurityKeyIdentifierClause) |
Hämtar ett värde som anger om nyckelidentifierarens satskärna med en angiven nyckelidentifierarsats kan skrivas. |
| CanWriteKeyIdentifierCore(SecurityKeyIdentifier) |
Hämtar ett värde som anger om nyckelidentifierarens kärna med en angiven nyckelidentifierarsats kan skrivas. |
| CanWriteToken(SecurityToken) |
Avgör om den här serialiseraren kan skriva den angivna säkerhetstoken till XML. (Ärvd från SecurityTokenSerializer) |
| CanWriteTokenCore(SecurityToken) |
Hämtar ett värde som anger om tokenkärnan med en angiven säkerhetstoken kan skrivas. |
| CreateKeyIdentifierClauseFromTokenXml(XmlElement, SecurityTokenReferenceStyle) |
Skapar en nyckelidentifierarsats från en token som uttrycks som XML. |
| Equals(Object) |
Avgör om det angivna objektet är lika med det aktuella objektet. (Ärvd från Object) |
| GetHashCode() |
Fungerar som standard-hash-funktion. (Ärvd från Object) |
| GetTokenTypeUri(Type) |
Hämtar URI:n för säkerhetstoken för den angivna typen. |
| GetType() |
Hämtar den aktuella instansen Type . (Ärvd från Object) |
| MemberwiseClone() |
Skapar en ytlig kopia av den aktuella Object. (Ärvd från Object) |
| ReadKeyIdentifier(XmlReader) |
Läser nyckelidentifieraren med angiven XML-läsare. (Ärvd från SecurityTokenSerializer) |
| ReadKeyIdentifierClause(XmlReader) |
Läser nyckelidentifierarsatsen med hjälp av den angivna XML-läsaren. (Ärvd från SecurityTokenSerializer) |
| ReadKeyIdentifierClauseCore(XmlReader) |
Läser nyckelidentifierarens satskärna med den angivna XmlReader. |
| ReadKeyIdentifierCore(XmlReader) |
Läser nyckelidentifierarkärnan med den angivna XmlReader. |
| ReadToken(XmlReader, SecurityTokenResolver) |
Läser säkerhetstoken som pekas på av den angivna XML-läsaren. (Ärvd från SecurityTokenSerializer) |
| ReadTokenCore(XmlReader, SecurityTokenResolver) |
Läser tokenkärnan med den angivna XmlReader. |
| ToString() |
Returnerar en sträng som representerar det aktuella objektet. (Ärvd från Object) |
| TryCreateKeyIdentifierClauseFromTokenXml(XmlElement, SecurityTokenReferenceStyle, SecurityKeyIdentifierClause) |
Försöker skapa en nyckelidentifierarsats från en token som uttrycks som XML. |
| WriteKeyIdentifier(XmlWriter, SecurityKeyIdentifier) |
Skriver den angivna nyckelidentifieraren med den angivna XML-skrivaren. (Ärvd från SecurityTokenSerializer) |
| WriteKeyIdentifierClause(XmlWriter, SecurityKeyIdentifierClause) |
Skriver den angivna nyckelidentifierarsatsen med den angivna XML-skrivaren. (Ärvd från SecurityTokenSerializer) |
| WriteKeyIdentifierClauseCore(XmlWriter, SecurityKeyIdentifierClause) |
Skriver nyckelidentifierarens satskärna med en angiven nyckelidentifierare med hjälp av angiven XmlWriter. |
| WriteKeyIdentifierCore(XmlWriter, SecurityKeyIdentifier) |
Skriver nyckelidentifierarens kärna med en angiven nyckelidentifierarsats med den angivna XmlWriter. |
| WriteToken(XmlWriter, SecurityToken) |
Skriver den angivna säkerhetstoken med den angivna XML-skrivaren. (Ärvd från SecurityTokenSerializer) |
| WriteTokenCore(XmlWriter, SecurityToken) |
Skriver tokenkärnan med en angiven säkerhetstoken med den angivna XmlWriter. |