Code:
/ WCF / WCF / 3.5.30729.1 / untmp / Orcas / SP / ndp / cdf / src / WCF / IdentityModel / System / IdentityModel / Selectors / SecurityTokenSerializer.cs / 1 / SecurityTokenSerializer.cs
//------------------------------------------------------------
// Copyright (c) Microsoft Corporation. All rights reserved.
//-----------------------------------------------------------
namespace System.IdentityModel.Selectors
{
using System.Xml;
using System.IdentityModel.Tokens;
///
/// SecurityTokenSerializer is responsible for writing and reading SecurityKeyIdentifiers, SecurityKeyIdentifierClauses and SecurityTokens.
/// In order to read SecurityTokens the SecurityTokenSerializer may need to resolve token references using the SecurityTokenResolvers that get passed in.
/// The SecurityTokenSerializer is stateless
/// Exceptions: XmlException, SecurityTokenException, NotSupportedException, InvalidOperationException, ArgumentException
///
public abstract class SecurityTokenSerializer
{
// public methods
public bool CanReadToken(XmlReader reader)
{
if (reader == null)
{
throw DiagnosticUtility.ExceptionUtility.ThrowHelperArgumentNull("reader");
}
return CanReadTokenCore(reader); ;
}
public bool CanWriteToken(SecurityToken token)
{
if (token == null)
{
throw DiagnosticUtility.ExceptionUtility.ThrowHelperArgumentNull("token");
}
return CanWriteTokenCore(token); ;
}
public bool CanReadKeyIdentifier(XmlReader reader)
{
if (reader == null)
{
throw DiagnosticUtility.ExceptionUtility.ThrowHelperArgumentNull("reader");
}
return CanReadKeyIdentifierCore(reader); ;
}
public bool CanWriteKeyIdentifier(SecurityKeyIdentifier keyIdentifier)
{
if (keyIdentifier == null)
{
throw DiagnosticUtility.ExceptionUtility.ThrowHelperArgumentNull("keyIdentifier");
}
return CanWriteKeyIdentifierCore(keyIdentifier); ;
}
public bool CanReadKeyIdentifierClause(XmlReader reader)
{
if (reader == null)
{
throw DiagnosticUtility.ExceptionUtility.ThrowHelperArgumentNull("reader");
}
return CanReadKeyIdentifierClauseCore(reader); ;
}
public bool CanWriteKeyIdentifierClause(SecurityKeyIdentifierClause keyIdentifierClause)
{
if (keyIdentifierClause == null)
{
throw DiagnosticUtility.ExceptionUtility.ThrowHelperArgumentNull("keyIdentifierClause");
}
return CanWriteKeyIdentifierClauseCore(keyIdentifierClause); ;
}
public SecurityToken ReadToken(XmlReader reader, SecurityTokenResolver tokenResolver)
{
if (reader == null)
{
throw DiagnosticUtility.ExceptionUtility.ThrowHelperArgumentNull("reader");
}
return ReadTokenCore(reader, tokenResolver);
}
public void WriteToken(XmlWriter writer, SecurityToken token)
{
if (writer == null)
{
throw DiagnosticUtility.ExceptionUtility.ThrowHelperArgumentNull("writer");
}
if (token == null)
{
throw DiagnosticUtility.ExceptionUtility.ThrowHelperArgumentNull("token");
}
WriteTokenCore(writer, token);
}
public SecurityKeyIdentifier ReadKeyIdentifier(XmlReader reader)
{
if (reader == null)
{
throw DiagnosticUtility.ExceptionUtility.ThrowHelperArgumentNull("reader");
}
return ReadKeyIdentifierCore(reader);
}
public void WriteKeyIdentifier(XmlWriter writer, SecurityKeyIdentifier keyIdentifier)
{
if (writer == null)
{
throw DiagnosticUtility.ExceptionUtility.ThrowHelperArgumentNull("writer");
}
if (keyIdentifier == null)
{
throw DiagnosticUtility.ExceptionUtility.ThrowHelperArgumentNull("keyIdentifier");
}
WriteKeyIdentifierCore(writer, keyIdentifier);
}
public SecurityKeyIdentifierClause ReadKeyIdentifierClause(XmlReader reader)
{
if (reader == null)
{
throw DiagnosticUtility.ExceptionUtility.ThrowHelperArgumentNull("reader");
}
return ReadKeyIdentifierClauseCore(reader);
}
public void WriteKeyIdentifierClause(XmlWriter writer, SecurityKeyIdentifierClause keyIdentifierClause)
{
if (writer == null)
{
throw DiagnosticUtility.ExceptionUtility.ThrowHelperArgumentNull("writer");
}
if (keyIdentifierClause == null)
{
throw DiagnosticUtility.ExceptionUtility.ThrowHelperArgumentNull("keyIdentifierClause");
}
WriteKeyIdentifierClauseCore(writer, keyIdentifierClause);
}
// protected abstract methods
protected abstract bool CanReadTokenCore(XmlReader reader);
protected abstract bool CanWriteTokenCore(SecurityToken token);
protected abstract bool CanReadKeyIdentifierCore(XmlReader reader);
protected abstract bool CanWriteKeyIdentifierCore(SecurityKeyIdentifier keyIdentifier);
protected abstract bool CanReadKeyIdentifierClauseCore(XmlReader reader);
protected abstract bool CanWriteKeyIdentifierClauseCore(SecurityKeyIdentifierClause keyIdentifierClause);
protected abstract SecurityToken ReadTokenCore(XmlReader reader, SecurityTokenResolver tokenResolver);
protected abstract void WriteTokenCore(XmlWriter writer, SecurityToken token);
protected abstract SecurityKeyIdentifier ReadKeyIdentifierCore(XmlReader reader);
protected abstract void WriteKeyIdentifierCore(XmlWriter writer, SecurityKeyIdentifier keyIdentifier);
protected abstract SecurityKeyIdentifierClause ReadKeyIdentifierClauseCore(XmlReader reader);
protected abstract void WriteKeyIdentifierClauseCore(XmlWriter writer, SecurityKeyIdentifierClause keyIdentifierClause);
}
}
// File provided for Reference Use Only by Microsoft Corporation (c) 2007.
// Copyright (c) Microsoft Corporation. All rights reserved.
Link Menu

This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- WebPartVerb.cs
- ConfigurationErrorsException.cs
- BinaryFormatterWriter.cs
- Int32AnimationBase.cs
- ThousandthOfEmRealPoints.cs
- NumericUpDown.cs
- Block.cs
- CollectionViewSource.cs
- DesignBindingValueUIHandler.cs
- RtfToXamlReader.cs
- Win32Interop.cs
- UserControlCodeDomTreeGenerator.cs
- Int64Converter.cs
- DockPanel.cs
- RadioButtonFlatAdapter.cs
- SpellCheck.cs
- TextBlockAutomationPeer.cs
- ImageSourceValueSerializer.cs
- OleDbParameterCollection.cs
- ReverseQueryOperator.cs
- BuildResult.cs
- XmlSchemaAnnotated.cs
- LocalizationComments.cs
- CacheRequest.cs
- ToolboxItemSnapLineBehavior.cs
- CopyOfAction.cs
- DesignerDataColumn.cs
- Column.cs
- BufferedGraphicsManager.cs
- MiniConstructorInfo.cs
- DataColumnMappingCollection.cs
- MsmqEncryptionAlgorithm.cs
- IERequestCache.cs
- Relationship.cs
- SharedDp.cs
- CategoryEditor.cs
- ProgressBarRenderer.cs
- GridViewColumnHeader.cs
- TabControlCancelEvent.cs
- WebPartChrome.cs
- FamilyCollection.cs
- _ListenerAsyncResult.cs
- TextEffect.cs
- ResXDataNode.cs
- Stylesheet.cs
- DataRecord.cs
- EntityClassGenerator.cs
- TextRangeEdit.cs
- TextRangeSerialization.cs
- TableDetailsCollection.cs
- HttpsHostedTransportConfiguration.cs
- FastEncoder.cs
- MultiByteCodec.cs
- ContextMenu.cs
- ConnectionInterfaceCollection.cs
- CheckBoxFlatAdapter.cs
- WorkerRequest.cs
- ScalarOps.cs
- SafeFileHandle.cs
- HtmlTableCellCollection.cs
- DataGridBoundColumn.cs
- Function.cs
- COM2ComponentEditor.cs
- FastEncoder.cs
- DesignBinding.cs
- ChannelPool.cs
- CharacterMetrics.cs
- SetStoryboardSpeedRatio.cs
- Query.cs
- SqlBulkCopy.cs
- UInt32Converter.cs
- DefaultHttpHandler.cs
- MessageDecoder.cs
- HtmlInputImage.cs
- ExplicitDiscriminatorMap.cs
- AdCreatedEventArgs.cs
- FileUpload.cs
- _PooledStream.cs
- TextEditorTables.cs
- SqlConnectionHelper.cs
- XmlSchemaNotation.cs
- ModelPropertyImpl.cs
- WrapPanel.cs
- DataSourceCacheDurationConverter.cs
- ErrorHandlingAcceptor.cs
- MouseBinding.cs
- GridLength.cs
- GeneralTransform3DGroup.cs
- WindowsFont.cs
- DisplayNameAttribute.cs
- AsymmetricSignatureFormatter.cs
- PingOptions.cs
- ChangePassword.cs
- BinHexDecoder.cs
- __ConsoleStream.cs
- ScaleTransform.cs
- HtmlInputControl.cs
- ItemsChangedEventArgs.cs
- DateTimeOffsetConverter.cs
- LinkLabel.cs