Code:
/ 4.0 / 4.0 / 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. //------------------------------------------------------------------------------ // 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 ImmutableCollection audiences = 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
- MarkupCompilePass2.cs
- SwitchAttribute.cs
- CharacterHit.cs
- CodeLabeledStatement.cs
- NamespaceInfo.cs
- ToolStripRenderEventArgs.cs
- PermissionSetTriple.cs
- ClientBuildManagerCallback.cs
- EventWaitHandleSecurity.cs
- DefaultHttpHandler.cs
- SessionEndingCancelEventArgs.cs
- SkewTransform.cs
- DynamicActivityXamlReader.cs
- HashAlgorithm.cs
- HttpCapabilitiesSectionHandler.cs
- ColumnMapCopier.cs
- RedistVersionInfo.cs
- securitycriticaldata.cs
- DropShadowBitmapEffect.cs
- WebReferenceCollection.cs
- ResXResourceSet.cs
- DynamicObject.cs
- GeometryDrawing.cs
- _ReceiveMessageOverlappedAsyncResult.cs
- basecomparevalidator.cs
- CancelEventArgs.cs
- ProcessProtocolHandler.cs
- SafeIUnknown.cs
- XmlDesignerDataSourceView.cs
- ViewDesigner.cs
- DefaultBindingPropertyAttribute.cs
- Scene3D.cs
- SecureUICommand.cs
- SizeAnimation.cs
- FtpCachePolicyElement.cs
- EmissiveMaterial.cs
- Renderer.cs
- ListControlBuilder.cs
- ImageList.cs
- WindowsRegion.cs
- DataGridColumnCollection.cs
- unsafeIndexingFilterStream.cs
- Vector3D.cs
- SQLBinary.cs
- controlskin.cs
- DragDeltaEventArgs.cs
- ConfigurationStrings.cs
- CqlQuery.cs
- WebConfigurationHostFileChange.cs
- CodeExporter.cs
- TableParagraph.cs
- XmlSchemaSimpleTypeRestriction.cs
- SignatureConfirmationElement.cs
- BCryptHashAlgorithm.cs
- EntityContainer.cs
- MetadataItemEmitter.cs
- MenuAutoFormat.cs
- RemotingServices.cs
- ControlAdapter.cs
- EntityConnectionStringBuilder.cs
- ServiceDescriptionSerializer.cs
- ExpandSegmentCollection.cs
- ToolStripArrowRenderEventArgs.cs
- ObjectTypeMapping.cs
- HtmlTable.cs
- ThreadNeutralSemaphore.cs
- ConsumerConnectionPoint.cs
- StyleModeStack.cs
- MarkupExtensionReturnTypeAttribute.cs
- StrokeCollectionConverter.cs
- BuildManager.cs
- CatalogZoneBase.cs
- MetafileHeaderWmf.cs
- EntityDataSourceWrapper.cs
- Transform.cs
- FormViewModeEventArgs.cs
- DesignerDataStoredProcedure.cs
- EnumValAlphaComparer.cs
- WebServiceErrorEvent.cs
- XhtmlBasicControlAdapter.cs
- EmissiveMaterial.cs
- FileChangesMonitor.cs
- PathTooLongException.cs
- SchemaNotation.cs
- CollectionMarkupSerializer.cs
- ZoneMembershipCondition.cs
- VarRefManager.cs
- MethodBuilderInstantiation.cs
- InitiatorSessionSymmetricMessageSecurityProtocol.cs
- NavigationCommands.cs
- HostProtectionException.cs
- JavaScriptSerializer.cs
- PermissionListSet.cs
- OleDbConnection.cs
- ImageDesigner.cs
- ManagedFilter.cs
- ZoneMembershipCondition.cs
- ListItemViewAttribute.cs
- AdornerPresentationContext.cs
- ValueQuery.cs