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
- AssemblyHash.cs
- DataGridViewEditingControlShowingEventArgs.cs
- ProxyWebPartManagerDesigner.cs
- DataGridItemCollection.cs
- JsonReader.cs
- IncrementalHitTester.cs
- SerTrace.cs
- XmlILIndex.cs
- KeyMatchBuilder.cs
- DbConnectionPool.cs
- ConnectionManagementElementCollection.cs
- DataObjectEventArgs.cs
- ThreadExceptionDialog.cs
- MaskInputRejectedEventArgs.cs
- SpellerStatusTable.cs
- MessageLogger.cs
- HandleRef.cs
- DesignerActionList.cs
- RayHitTestParameters.cs
- ExternalFile.cs
- OutputCache.cs
- WpfWebRequestHelper.cs
- DesignerAttribute.cs
- DataGridBoolColumn.cs
- GridItemProviderWrapper.cs
- HostingPreferredMapPath.cs
- Scripts.cs
- EventsTab.cs
- EntitySqlException.cs
- AttributeSetAction.cs
- PeoplePickerWrapper.cs
- SqlFlattener.cs
- Pool.cs
- PerformanceCounterLib.cs
- EmissiveMaterial.cs
- MouseGestureConverter.cs
- BindableTemplateBuilder.cs
- RegexInterpreter.cs
- PermissionAttributes.cs
- TileModeValidation.cs
- XmlEnumAttribute.cs
- PackageProperties.cs
- FixedDocumentSequencePaginator.cs
- ConfigurationSchemaErrors.cs
- StronglyTypedResourceBuilder.cs
- CryptoHandle.cs
- XmlNodeChangedEventManager.cs
- CustomTrackingQuery.cs
- CurrentTimeZone.cs
- StringPropertyBuilder.cs
- TdsParserSessionPool.cs
- ConfigXmlElement.cs
- Point3DValueSerializer.cs
- TextParagraphCache.cs
- HtmlControl.cs
- EntityDataSourceWrapper.cs
- BitmapEffectGroup.cs
- CreateUserErrorEventArgs.cs
- TableRow.cs
- Domain.cs
- AnnotationResource.cs
- WebRequestModulesSection.cs
- updatecommandorderer.cs
- InputBindingCollection.cs
- EmptyWorkItem.cs
- DrawingGroup.cs
- _LocalDataStoreMgr.cs
- ColorDialog.cs
- TabItemAutomationPeer.cs
- FaultCode.cs
- VisualBasicExpressionConverter.cs
- Screen.cs
- SiteMapHierarchicalDataSourceView.cs
- NavigatorInput.cs
- GenericsInstances.cs
- XPathParser.cs
- InputMethodStateChangeEventArgs.cs
- PersonalizablePropertyEntry.cs
- RestHandlerFactory.cs
- XmlSchemaIdentityConstraint.cs
- BaseHashHelper.cs
- DBConnection.cs
- odbcmetadatacolumnnames.cs
- RTLAwareMessageBox.cs
- OutputChannelBinder.cs
- updateconfighost.cs
- Image.cs
- WebBrowserBase.cs
- SynchronizedDispatch.cs
- elementinformation.cs
- FontUnitConverter.cs
- ResourceDictionary.cs
- FileReservationCollection.cs
- ActiveXSite.cs
- MimeTypePropertyAttribute.cs
- ConfigurationStrings.cs
- RectAnimation.cs
- PenContext.cs
- HtmlTableCellCollection.cs
- ForeignConstraint.cs