Code:
/ 4.0 / 4.0 / untmp / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / cdf / src / WCF / IdentityModel / System / IdentityModel / Tokens / SamlAudienceRestrictionCondition.cs / 1305376 / 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.
Link Menu

This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- OdbcConnectionOpen.cs
- ScrollProperties.cs
- TextRangeProviderWrapper.cs
- HtmlEmptyTagControlBuilder.cs
- Selection.cs
- InputLanguageManager.cs
- ConversionContext.cs
- PerformanceCounters.cs
- ProtectedProviderSettings.cs
- VersionPair.cs
- SafeNativeMethods.cs
- HttpDictionary.cs
- TimeoutException.cs
- DataGridColumn.cs
- TypeSystemProvider.cs
- DoubleLinkListEnumerator.cs
- FileUpload.cs
- StorageFunctionMapping.cs
- ContourSegment.cs
- TaskFileService.cs
- MailDefinition.cs
- Rotation3DAnimation.cs
- TransformerConfigurationWizardBase.cs
- ValidationErrorCollection.cs
- SimpleNameService.cs
- EntityModelBuildProvider.cs
- LexicalChunk.cs
- MissingManifestResourceException.cs
- DataColumnMappingCollection.cs
- LinqDataSourceContextData.cs
- CharUnicodeInfo.cs
- AvTraceDetails.cs
- GatewayIPAddressInformationCollection.cs
- GeneralTransform3DGroup.cs
- WarningException.cs
- SafeLibraryHandle.cs
- Separator.cs
- StatusStrip.cs
- xml.cs
- StyleTypedPropertyAttribute.cs
- BindStream.cs
- QuotedStringFormatReader.cs
- WebPartHeaderCloseVerb.cs
- UserControlParser.cs
- DocumentPaginator.cs
- SqlVisitor.cs
- EnlistmentTraceIdentifier.cs
- IsolatedStoragePermission.cs
- Schema.cs
- PropertyIDSet.cs
- HtmlInputImage.cs
- Types.cs
- XpsPartBase.cs
- DrawingContextDrawingContextWalker.cs
- XmlSchemaObjectCollection.cs
- DetailsViewAutoFormat.cs
- InputBindingCollection.cs
- XPathParser.cs
- BreakSafeBase.cs
- JulianCalendar.cs
- EntityDataReader.cs
- CodeDelegateInvokeExpression.cs
- MultilineStringConverter.cs
- mda.cs
- OracleTransaction.cs
- DataColumnMapping.cs
- CreateRefExpr.cs
- InstallHelper.cs
- EncoderNLS.cs
- PolicyManager.cs
- ObjectQueryProvider.cs
- DataRelation.cs
- VisualStyleRenderer.cs
- FakeModelItemImpl.cs
- ZipIOExtraFieldElement.cs
- ITreeGenerator.cs
- Msmq3PoisonHandler.cs
- BufferedStream.cs
- ReliableRequestSessionChannel.cs
- DataTableCollection.cs
- CustomTrackingRecord.cs
- SqlClientMetaDataCollectionNames.cs
- InvalidComObjectException.cs
- HtmlShim.cs
- CqlIdentifiers.cs
- StylusEventArgs.cs
- HttpRuntime.cs
- ReflectionTypeLoadException.cs
- ParameterElement.cs
- _NetRes.cs
- SqlCaseSimplifier.cs
- LocationReferenceEnvironment.cs
- ExeConfigurationFileMap.cs
- Set.cs
- ToolStripProfessionalLowResolutionRenderer.cs
- DataControlFieldTypeEditor.cs
- OlePropertyStructs.cs
- StylusPointPropertyUnit.cs
- ImpersonationContext.cs
- Size.cs