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
- TimeZoneNotFoundException.cs
- TypeProvider.cs
- PersonalizationStateInfo.cs
- SoapFault.cs
- DbDataAdapter.cs
- Event.cs
- CapabilitiesRule.cs
- ValueQuery.cs
- AtlasWeb.Designer.cs
- ACE.cs
- ExceptionUtil.cs
- TemplatePartAttribute.cs
- XmlLanguage.cs
- TextEditorSpelling.cs
- SessionEndingEventArgs.cs
- MexHttpsBindingCollectionElement.cs
- XmlObjectSerializerReadContext.cs
- StyleXamlTreeBuilder.cs
- CollaborationHelperFunctions.cs
- ActivationServices.cs
- LoginUtil.cs
- ByeOperationAsyncResult.cs
- BlurBitmapEffect.cs
- CompilerErrorCollection.cs
- PrivateUnsafeNativeCompoundFileMethods.cs
- InplaceBitmapMetadataWriter.cs
- HtmlFormWrapper.cs
- ThicknessKeyFrameCollection.cs
- SessionStateModule.cs
- XsltException.cs
- FixedPageStructure.cs
- QueryRewriter.cs
- StrokeNodeOperations2.cs
- TextOnlyOutput.cs
- SafeEventLogReadHandle.cs
- WebPartDescriptionCollection.cs
- SynchronizationFilter.cs
- ButtonBase.cs
- EqualityComparer.cs
- ChineseLunisolarCalendar.cs
- CodeComment.cs
- ContextItemManager.cs
- unitconverter.cs
- Parallel.cs
- GeometryCollection.cs
- OverflowException.cs
- MsmqIntegrationOutputChannel.cs
- StyleSheetRefUrlEditor.cs
- WebSysDisplayNameAttribute.cs
- AssemblyInfo.cs
- SafeFileMapViewHandle.cs
- BigInt.cs
- TreeNode.cs
- GlyphElement.cs
- SqlParameter.cs
- TypeInitializationException.cs
- SoapCommonClasses.cs
- TemplateControl.cs
- FreeFormDesigner.cs
- LogArchiveSnapshot.cs
- SqlDataSourceView.cs
- AssemblySettingAttributes.cs
- MarkupCompilePass1.cs
- DataGridComponentEditor.cs
- DecimalAnimationBase.cs
- GiveFeedbackEventArgs.cs
- GridViewHeaderRowPresenter.cs
- HandlerFactoryWrapper.cs
- EntityDataSourceWrapperCollection.cs
- DataRecord.cs
- DropSourceBehavior.cs
- XmlDocumentType.cs
- QilNode.cs
- TypeGeneratedEventArgs.cs
- GeneralTransformGroup.cs
- KeyTime.cs
- CalendarData.cs
- DataFormats.cs
- SqlInfoMessageEvent.cs
- EventHandlerList.cs
- HtmlHead.cs
- ProcessMessagesAsyncResult.cs
- SkipStoryboardToFill.cs
- SqlDataSourceStatusEventArgs.cs
- MsmqProcessProtocolHandler.cs
- HttpFileCollection.cs
- ClosureBinding.cs
- WebHttpSecurityElement.cs
- hebrewshape.cs
- Binding.cs
- RelatedPropertyManager.cs
- ConditionCollection.cs
- RepeaterDataBoundAdapter.cs
- ConnectionOrientedTransportBindingElement.cs
- DispatchWrapper.cs
- CmsInterop.cs
- TypeSystemHelpers.cs
- FixedPage.cs
- SingleTagSectionHandler.cs
- HyperLinkField.cs