Code:
/ WCF / WCF / 3.5.30729.1 / untmp / Orcas / SP / ndp / cdf / src / WCF / IdentityModel / System / IdentityModel / Tokens / SamlAudienceRestrictionCondition.cs / 1 / SamlAudienceRestrictionCondition.cs
//------------------------------------------------------------------------------ // Copyright (c) Microsoft Corporation. All rights reserved. //----------------------------------------------------------------------------- namespace System.IdentityModel.Tokens { using System.Collections; using System.Collections.Generic; using System.Collections.ObjectModel; using System.Globalization; using System.IdentityModel; using System.IdentityModel.Selectors; using System.Xml; using System.Xml.Schema; using System.Xml.Serialization; public class SamlAudienceRestrictionCondition : SamlCondition { readonly ImmutableCollectionaudiences = new ImmutableCollection (); bool isReadOnly = false; public SamlAudienceRestrictionCondition(IEnumerable audiences) { if (audiences == null) throw DiagnosticUtility.ExceptionUtility.ThrowHelperError(new ArgumentNullException("audiences")); foreach (Uri audience in audiences) { if (audience == null) throw DiagnosticUtility.ExceptionUtility.ThrowHelperArgument(SR.GetString(SR.SAMLEntityCannotBeNullOrEmpty, XD.SamlDictionary.Audience.Value)); this.audiences.Add(audience); } CheckObjectValidity(); } public SamlAudienceRestrictionCondition() { } public IList Audiences { get {return this.audiences; } } public override bool IsReadOnly { get { return this.isReadOnly; } } public override void MakeReadOnly() { if (!this.isReadOnly) { this.audiences.MakeReadOnly(); this.isReadOnly = true; } } void CheckObjectValidity() { if (this.audiences.Count == 0) throw DiagnosticUtility.ExceptionUtility.ThrowHelperError(new SecurityTokenException(SR.GetString(SR.SAMLAudienceRestrictionShouldHaveOneAudience))); } public override void ReadXml(XmlDictionaryReader reader, SamlSerializer samlSerializer, SecurityTokenSerializer keyInfoSerializer, SecurityTokenResolver outOfBandTokenResolver) { if (reader == null) throw DiagnosticUtility.ExceptionUtility.ThrowHelperError(new ArgumentNullException("reader")); if (samlSerializer == null) throw DiagnosticUtility.ExceptionUtility.ThrowHelperError(new ArgumentNullException("samlSerializer")); #pragma warning suppress 56506 // samlSerializer.DictionaryManager is never null. SamlDictionary dictionary = samlSerializer.DictionaryManager.SamlDictionary; reader.MoveToContent(); reader.Read(); while (reader.IsStartElement()) { if (reader.IsStartElement(dictionary.Audience, dictionary.Namespace)) { reader.MoveToContent(); string audience = reader.ReadString(); if (String.IsNullOrEmpty(audience)) throw DiagnosticUtility.ExceptionUtility.ThrowHelperError(new SecurityTokenException(SR.GetString(SR.SAMLAudienceRestrictionInvalidAudienceValueOnRead))); this.audiences.Add(new Uri(audience)); reader.MoveToContent(); reader.ReadEndElement(); } else { throw DiagnosticUtility.ExceptionUtility.ThrowHelperError(new SecurityTokenException(SR.GetString(SR.SAMLBadSchema, dictionary.AudienceRestrictionCondition.Value))); } } if (this.audiences.Count == 0) throw DiagnosticUtility.ExceptionUtility.ThrowHelperError(new SecurityTokenException(SR.GetString(SR.SAMLAudienceRestrictionShouldHaveOneAudienceOnRead))); reader.MoveToContent(); reader.ReadEndElement(); } public override void WriteXml(XmlDictionaryWriter writer, SamlSerializer samlSerializer, SecurityTokenSerializer keyInfoSerializer) { CheckObjectValidity(); if (writer == null) throw DiagnosticUtility.ExceptionUtility.ThrowHelperError(new ArgumentNullException("writer")); if (samlSerializer == null) throw DiagnosticUtility.ExceptionUtility.ThrowHelperError(new ArgumentNullException("samlSerializer")); #pragma warning suppress 56506 // samlSerializer.DictionaryManager is never null. SamlDictionary dictionary = samlSerializer.DictionaryManager.SamlDictionary; writer.WriteStartElement(dictionary.PreferredPrefix.Value, dictionary.AudienceRestrictionCondition, dictionary.Namespace); for (int i = 0; i < this.audiences.Count; i++) { writer.WriteElementString(dictionary.Audience, dictionary.Namespace, this.audiences[i].AbsoluteUri); } writer.WriteEndElement(); } } } // 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
- HttpServerChannel.cs
- RegexTree.cs
- ContextStaticAttribute.cs
- DispatcherHookEventArgs.cs
- _DisconnectOverlappedAsyncResult.cs
- _LocalDataStoreMgr.cs
- Point3DAnimationBase.cs
- PreviewKeyDownEventArgs.cs
- ActionNotSupportedException.cs
- ObjectStateFormatter.cs
- Opcode.cs
- BitmapSourceSafeMILHandle.cs
- IResourceProvider.cs
- TypeUtil.cs
- iisPickupDirectory.cs
- InstanceNormalEvent.cs
- SplitContainer.cs
- SqlClientMetaDataCollectionNames.cs
- DefaultTraceListener.cs
- Metadata.cs
- ToggleButtonAutomationPeer.cs
- BehaviorEditorPart.cs
- Schema.cs
- CodeGotoStatement.cs
- GeneralTransform3DTo2D.cs
- XmlRawWriterWrapper.cs
- XmlSubtreeReader.cs
- UriPrefixTable.cs
- StylusTip.cs
- ClockController.cs
- List.cs
- HitTestParameters3D.cs
- Nullable.cs
- UTF7Encoding.cs
- HideDisabledControlAdapter.cs
- XPathExpr.cs
- ObjectDataSourceView.cs
- DownloadProgressEventArgs.cs
- CacheHelper.cs
- TextElement.cs
- OleDbCommandBuilder.cs
- ProgressBarRenderer.cs
- SHA512CryptoServiceProvider.cs
- ServerIdentity.cs
- SettingsSection.cs
- DbBuffer.cs
- UInt64.cs
- UnauthorizedWebPart.cs
- XpsDigitalSignature.cs
- OdbcEnvironmentHandle.cs
- ColumnMapProcessor.cs
- BinaryParser.cs
- ZipIOExtraFieldElement.cs
- NetworkInformationPermission.cs
- FixedSchema.cs
- AsymmetricSignatureFormatter.cs
- NodeFunctions.cs
- ErrorRuntimeConfig.cs
- XmlSchemaInclude.cs
- PropertyMap.cs
- TagPrefixInfo.cs
- ProviderConnectionPointCollection.cs
- _DomainName.cs
- Matrix3DStack.cs
- RegexCapture.cs
- Variable.cs
- ResizeBehavior.cs
- DetailsViewCommandEventArgs.cs
- TabPage.cs
- ChangeProcessor.cs
- Variant.cs
- DuplicateDetector.cs
- DataServices.cs
- InkCanvasAutomationPeer.cs
- TypeExtension.cs
- WindowsIPAddress.cs
- ISAPIApplicationHost.cs
- FontUnit.cs
- ExpressionConverter.cs
- TypeUtil.cs
- InstancePersistenceCommand.cs
- NodeInfo.cs
- HexParser.cs
- DataServiceHost.cs
- KeyPressEvent.cs
- DataGridViewColumnHeaderCell.cs
- DBSqlParserColumnCollection.cs
- CompressEmulationStream.cs
- File.cs
- ProviderConnectionPoint.cs
- InputLanguage.cs
- ElapsedEventArgs.cs
- XmlAtomErrorReader.cs
- Attributes.cs
- x509utils.cs
- SrgsElement.cs
- ListControl.cs
- XmlCDATASection.cs
- Manipulation.cs
- DiscoveryEndpointElement.cs