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
- XmlWriterTraceListener.cs
- SimpleMailWebEventProvider.cs
- XdrBuilder.cs
- EntityDataSourceState.cs
- QilXmlWriter.cs
- BitmapEffectCollection.cs
- wgx_exports.cs
- ErrorTableItemStyle.cs
- ReadingWritingEntityEventArgs.cs
- DataPager.cs
- ConfigsHelper.cs
- _ScatterGatherBuffers.cs
- BitmapEffectGroup.cs
- HttpCachePolicy.cs
- BamlLocalizableResource.cs
- EntityConnection.cs
- SymmetricKey.cs
- FontCacheUtil.cs
- PngBitmapEncoder.cs
- TemplateControlBuildProvider.cs
- ClientTarget.cs
- DataGridViewToolTip.cs
- WindowsTooltip.cs
- DataServiceRequestException.cs
- ScriptControl.cs
- FieldToken.cs
- XmlSignificantWhitespace.cs
- PropertyInfoSet.cs
- CompilationLock.cs
- OwnerDrawPropertyBag.cs
- CacheRequest.cs
- InternalControlCollection.cs
- HtmlPageAdapter.cs
- SoapEnumAttribute.cs
- ViewStateException.cs
- SpellerStatusTable.cs
- ListView.cs
- MarginsConverter.cs
- CommonObjectSecurity.cs
- CollectionViewGroup.cs
- WeakReference.cs
- XmlNamespaceDeclarationsAttribute.cs
- SchemaTableColumn.cs
- SqlProviderServices.cs
- ComponentFactoryHelpers.cs
- FixedSchema.cs
- EventPrivateKey.cs
- BinaryUtilClasses.cs
- HtmlWindow.cs
- DataServiceEntityAttribute.cs
- FontNameConverter.cs
- Int64AnimationBase.cs
- OleDbSchemaGuid.cs
- OrthographicCamera.cs
- CodePrimitiveExpression.cs
- QuestionEventArgs.cs
- GlobalizationSection.cs
- Solver.cs
- RadioButtonList.cs
- TraceUtility.cs
- Thread.cs
- QueryGeneratorBase.cs
- RootProfilePropertySettingsCollection.cs
- ContractSearchPattern.cs
- ProxyElement.cs
- PrefixHandle.cs
- DataGridTextBoxColumn.cs
- ProviderConnectionPointCollection.cs
- rsa.cs
- ApplicationException.cs
- EntityWrapper.cs
- DataGridViewElement.cs
- BuilderPropertyEntry.cs
- DataMemberFieldEditor.cs
- WebRequestModuleElementCollection.cs
- DoubleConverter.cs
- QueryOperatorEnumerator.cs
- ValueUtilsSmi.cs
- LayoutTableCell.cs
- MemberCollection.cs
- Matrix3DValueSerializer.cs
- DbMetaDataColumnNames.cs
- TextProperties.cs
- XmlBinaryWriter.cs
- AllMembershipCondition.cs
- CollectionCodeDomSerializer.cs
- SelectionWordBreaker.cs
- Substitution.cs
- DataSourceIDConverter.cs
- EncoderFallback.cs
- invalidudtexception.cs
- COM2ICategorizePropertiesHandler.cs
- HttpCapabilitiesEvaluator.cs
- TreeViewCancelEvent.cs
- SqlGenerator.cs
- SoapElementAttribute.cs
- OleDbErrorCollection.cs
- SqlGenericUtil.cs
- XmlNavigatorFilter.cs
- Privilege.cs