WSSecurityTokenSerializer Class
The class used for serializing and deserializing security tokens, security key identifiers, and security key identifier clauses defined in the WS-Security, WS-Trust, and WS-SecureConversation security specifications.
Assembly: System.ServiceModel (in System.ServiceModel.dll)
System.IdentityModel.Selectors.SecurityTokenSerializer
System.ServiceModel.Security.WSSecurityTokenSerializer
| Name | Description | |
|---|---|---|
![]() ![]() | DefaultInstance | Gets a default instance of this class. |
![]() | EmitBspRequiredAttributes | Gets a value that indicates whether to emit BSP required attributes. |
![]() | MaximumKeyDerivationLabelLength | Gets the maximum key derivation label length. |
![]() | MaximumKeyDerivationNonceLength | Gets the maximum key derivation nonce length. |
![]() | MaximumKeyDerivationOffset | Gets the maximum key derivation offset. |
![]() | SecurityVersion | Gets the security version. |
| Name | Description | |
|---|---|---|
![]() | CanReadKeyIdentifier(XmlReader) | Determines whether this serializer can read the <KeyIdentifier> element referred to by the specified XML reader. (Inherited from SecurityTokenSerializer.) |
![]() | CanReadKeyIdentifierClause(XmlReader) | Determines whether this serializer can read a clause in a <KeyIdentifier> element referred to by the specified XML reader. (Inherited from SecurityTokenSerializer.) |
![]() | CanReadKeyIdentifierClauseCore(XmlReader) | Gets a value that indicates whether the key identifier clause core can be read using the specified reader. (Overrides SecurityTokenSerializer.CanReadKeyIdentifierClauseCore(XmlReader).) |
![]() | CanReadKeyIdentifierCore(XmlReader) | Gets a value that indicates whether the key identifier core can be read using the specified reader.(Overrides SecurityTokenSerializer.CanReadKeyIdentifierCore(XmlReader).) |
![]() | CanReadToken(XmlReader) | Determines whether this serializer can read the security token pointed at by the specified XML reader.(Inherited from SecurityTokenSerializer.) |
![]() | CanReadTokenCore(XmlReader) | Gets a value that indicates whether the token core can be read using the specified reader.(Overrides SecurityTokenSerializer.CanReadTokenCore(XmlReader).) |
![]() | CanWriteKeyIdentifier(SecurityKeyIdentifier) | Determines whether this serializer can write the specified key identifier. (Inherited from SecurityTokenSerializer.) |
![]() | CanWriteKeyIdentifierClause(SecurityKeyIdentifierClause) | Determines whether this serializer can write the specified key identifier clause.(Inherited from SecurityTokenSerializer.) |
![]() | CanWriteKeyIdentifierClauseCore(SecurityKeyIdentifierClause) | Gets a value that indicates whether the key identifier clause core with a specified key identifier clause can be written.(Overrides SecurityTokenSerializer.CanWriteKeyIdentifierClauseCore(SecurityKeyIdentifierClause).) |
![]() | CanWriteKeyIdentifierCore(SecurityKeyIdentifier) | Gets a value that indicates whether the key identifier core with a specified key identifier clause can be written.(Overrides SecurityTokenSerializer.CanWriteKeyIdentifierCore(SecurityKeyIdentifier).) |
![]() | CanWriteToken(SecurityToken) | Determines whether this serializer can write the specified security token to XML.(Inherited from SecurityTokenSerializer.) |
![]() | CanWriteTokenCore(SecurityToken) | Gets a value that indicates whether the token core with a specified security token can be written.(Overrides SecurityTokenSerializer.CanWriteTokenCore(SecurityToken).) |
![]() | CreateKeyIdentifierClauseFromTokenXml(XmlElement, SecurityTokenReferenceStyle) | Creates a key identifier clause from a token expressed as XML. |
![]() | Equals(Object) | Determines whether the specified object is equal to the current object.(Inherited from Object.) |
![]() | Finalize() | Allows an object to try to free resources and perform other cleanup operations before it is reclaimed by garbage collection.(Inherited from Object.) |
![]() | GetHashCode() | Serves as the default hash function. (Inherited from Object.) |
![]() | GetTokenTypeUri(Type) | Gets the URI of the security token of the specified type. |
![]() | GetType() | |
![]() | MemberwiseClone() | |
![]() | ReadKeyIdentifier(XmlReader) | Reads the key identifier using specified XML reader.(Inherited from SecurityTokenSerializer.) |
![]() | ReadKeyIdentifierClause(XmlReader) | Reads the key identifier clause using specified XML reader.(Inherited from SecurityTokenSerializer.) |
![]() | ReadKeyIdentifierClauseCore(XmlReader) | Reads the key identifier clause core using the specified XmlReader.(Overrides SecurityTokenSerializer.ReadKeyIdentifierClauseCore(XmlReader).) |
![]() | ReadKeyIdentifierCore(XmlReader) | Reads the key identifier core using the specified XmlReader.(Overrides SecurityTokenSerializer.ReadKeyIdentifierCore(XmlReader).) |
![]() | ReadToken(XmlReader, SecurityTokenResolver) | Reads the security token pointed at by the specified XML reader.(Inherited from SecurityTokenSerializer.) |
![]() | ReadTokenCore(XmlReader, SecurityTokenResolver) | Reads the token core using the specified XmlReader.(Overrides SecurityTokenSerializer.ReadTokenCore(XmlReader, SecurityTokenResolver).) |
![]() | ToString() | Returns a string that represents the current object.(Inherited from Object.) |
![]() | TryCreateKeyIdentifierClauseFromTokenXml(XmlElement, SecurityTokenReferenceStyle, SecurityKeyIdentifierClause) | Attempts to create a key identifier clause from a token expressed as XML. |
![]() | WriteKeyIdentifier(XmlWriter, SecurityKeyIdentifier) | Writes the specified key identifier using the specified XML writer.(Inherited from SecurityTokenSerializer.) |
![]() | WriteKeyIdentifierClause(XmlWriter, SecurityKeyIdentifierClause) | Writes the specified key identifier clause using the specified XML writer.(Inherited from SecurityTokenSerializer.) |
![]() | WriteKeyIdentifierClauseCore(XmlWriter, SecurityKeyIdentifierClause) | Writes the key identifier clause core with a specified key identifier clause using the specified XmlWriter.(Overrides SecurityTokenSerializer.WriteKeyIdentifierClauseCore(XmlWriter, SecurityKeyIdentifierClause).) |
![]() | WriteKeyIdentifierCore(XmlWriter, SecurityKeyIdentifier) | Writes the key identifier core with a specified key identifier clause using the specified XmlWriter.(Overrides SecurityTokenSerializer.WriteKeyIdentifierCore(XmlWriter, SecurityKeyIdentifier).) |
![]() | WriteToken(XmlWriter, SecurityToken) | Writes the specified security token using the specified XML writer. (Inherited from SecurityTokenSerializer.) |
![]() | WriteTokenCore(XmlWriter, SecurityToken) | Writes the token core with a specified security token using the specified XmlWriter.(Overrides SecurityTokenSerializer.WriteTokenCore(XmlWriter, SecurityToken).) |
The following code demonstrates a custom override of this class.
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); } } }
Available since 3.0
Any public static ( Shared in Visual Basic) members of this type are thread safe. Any instance members are not guaranteed to be thread safe.



