WSSecurityTokenSerializer Kelas
Definisi
Penting
Beberapa informasi terkait produk prarilis yang dapat diubah secara signifikan sebelum dirilis. Microsoft tidak memberikan jaminan, tersirat maupun tersurat, sehubungan dengan informasi yang diberikan di sini.
Kelas yang digunakan untuk menserialisasikan dan mendeserialisasi token keamanan, pengidentifikasi kunci keamanan, dan klausa pengidentifikasi kunci keamanan yang ditentukan dalam spesifikasi keamanan WS-Security, WS-Trust, dan WS-SecureConversation.
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
- Warisan
Contoh
Kode berikut menunjukkan penimpaan kustom kelas ini.
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
Konstruktor
Properti
DefaultInstance |
Mendapatkan instans default kelas ini. |
EmitBspRequiredAttributes |
Mendapatkan nilai yang menunjukkan apakah akan memancarkan atribut yang diperlukan BSP. |
MaximumKeyDerivationLabelLength |
Mendapatkan panjang label derivasi kunci maksimum. |
MaximumKeyDerivationNonceLength |
Mendapatkan panjang nonce derivasi kunci maksimum. |
MaximumKeyDerivationOffset |
Mendapatkan offset derivasi kunci maksimum. |
SecurityVersion |
Mendapatkan versi keamanan. |
Metode
CanReadKeyIdentifier(XmlReader) |
Menentukan apakah serializer ini dapat membaca elemen yang |
CanReadKeyIdentifierClause(XmlReader) |
Menentukan apakah serializer ini dapat membaca klausul dalam elemen yang |
CanReadKeyIdentifierClauseCore(XmlReader) |
Mendapatkan nilai yang menunjukkan apakah inti klausa pengidentifikasi kunci dapat dibaca menggunakan pembaca yang ditentukan. |
CanReadKeyIdentifierCore(XmlReader) |
Mendapatkan nilai yang menunjukkan apakah inti pengidentifikasi kunci dapat dibaca menggunakan pembaca yang ditentukan. |
CanReadToken(XmlReader) |
Menentukan apakah serializer ini dapat membaca token keamanan yang ditunjukkan oleh pembaca XML yang ditentukan. (Diperoleh dari SecurityTokenSerializer) |
CanReadTokenCore(XmlReader) |
Mendapatkan nilai yang menunjukkan apakah inti token dapat dibaca menggunakan pembaca yang ditentukan. |
CanWriteKeyIdentifier(SecurityKeyIdentifier) |
Menentukan apakah serializer ini dapat menulis pengidentifikasi kunci yang ditentukan. (Diperoleh dari SecurityTokenSerializer) |
CanWriteKeyIdentifierClause(SecurityKeyIdentifierClause) |
Menentukan apakah serializer ini dapat menulis klausa pengidentifikasi kunci yang ditentukan. (Diperoleh dari SecurityTokenSerializer) |
CanWriteKeyIdentifierClauseCore(SecurityKeyIdentifierClause) |
Mendapatkan nilai yang menunjukkan apakah inti klausa pengidentifikasi kunci dengan klausa pengidentifikasi kunci tertentu dapat ditulis. |
CanWriteKeyIdentifierCore(SecurityKeyIdentifier) |
Mendapatkan nilai yang menunjukkan apakah inti pengidentifikasi kunci dengan klausa pengidentifikasi kunci tertentu dapat ditulis. |
CanWriteToken(SecurityToken) |
Menentukan apakah serializer ini dapat menulis token keamanan yang ditentukan ke XML. (Diperoleh dari SecurityTokenSerializer) |
CanWriteTokenCore(SecurityToken) |
Mendapatkan nilai yang menunjukkan apakah inti token dengan token keamanan tertentu dapat ditulis. |
CreateKeyIdentifierClauseFromTokenXml(XmlElement, SecurityTokenReferenceStyle) |
Membuat klausa pengidentifikasi kunci dari token yang dinyatakan sebagai XML. |
Equals(Object) |
Menentukan apakah objek yang ditentukan sama dengan objek saat ini. (Diperoleh dari Object) |
GetHashCode() |
Berfungsi sebagai fungsi hash default. (Diperoleh dari Object) |
GetTokenTypeUri(Type) |
Mendapatkan URI token keamanan dari jenis yang ditentukan. |
GetType() |
Mendapatkan instans Type saat ini. (Diperoleh dari Object) |
MemberwiseClone() |
Membuat salinan dangkal dari yang saat ini Object. (Diperoleh dari Object) |
ReadKeyIdentifier(XmlReader) |
Membaca pengidentifikasi kunci menggunakan pembaca XML yang ditentukan. (Diperoleh dari SecurityTokenSerializer) |
ReadKeyIdentifierClause(XmlReader) |
Membaca klausa pengidentifikasi kunci menggunakan pembaca XML yang ditentukan. (Diperoleh dari SecurityTokenSerializer) |
ReadKeyIdentifierClauseCore(XmlReader) |
Membaca inti klausa pengidentifikasi kunci menggunakan yang ditentukan XmlReader. |
ReadKeyIdentifierCore(XmlReader) |
Membaca inti pengidentifikasi kunci menggunakan XmlReader. |
ReadToken(XmlReader, SecurityTokenResolver) |
Membaca token keamanan yang ditujukkan oleh pembaca XML yang ditentukan. (Diperoleh dari SecurityTokenSerializer) |
ReadTokenCore(XmlReader, SecurityTokenResolver) |
Membaca inti token menggunakan XmlReader. |
ToString() |
Mengembalikan string yang mewakili objek saat ini. (Diperoleh dari Object) |
TryCreateKeyIdentifierClauseFromTokenXml(XmlElement, SecurityTokenReferenceStyle, SecurityKeyIdentifierClause) |
Mencoba membuat klausa pengidentifikasi kunci dari token yang dinyatakan sebagai XML. |
WriteKeyIdentifier(XmlWriter, SecurityKeyIdentifier) |
Menulis pengidentifikasi kunci yang ditentukan menggunakan penulis XML yang ditentukan. (Diperoleh dari SecurityTokenSerializer) |
WriteKeyIdentifierClause(XmlWriter, SecurityKeyIdentifierClause) |
Menulis klausa pengidentifikasi kunci yang ditentukan menggunakan penulis XML yang ditentukan. (Diperoleh dari SecurityTokenSerializer) |
WriteKeyIdentifierClauseCore(XmlWriter, SecurityKeyIdentifierClause) |
Menulis inti klausa pengidentifikasi kunci dengan klausa pengidentifikasi kunci tertentu menggunakan yang ditentukan XmlWriter. |
WriteKeyIdentifierCore(XmlWriter, SecurityKeyIdentifier) |
Menulis inti pengidentifikasi kunci dengan klausa pengidentifikasi kunci tertentu menggunakan XmlWriter. |
WriteToken(XmlWriter, SecurityToken) |
Menulis token keamanan yang ditentukan menggunakan penulis XML yang ditentukan. (Diperoleh dari SecurityTokenSerializer) |
WriteTokenCore(XmlWriter, SecurityToken) |
Menulis inti token dengan token keamanan tertentu menggunakan yang ditentukan XmlWriter. |