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
- Pipe.cs
- _SslState.cs
- ConfigurationElementCollection.cs
- Point.cs
- CompiledRegexRunner.cs
- TemplateParser.cs
- TdsParserStaticMethods.cs
- Brush.cs
- QuaternionConverter.cs
- LocationInfo.cs
- GridViewCommandEventArgs.cs
- MultipartContentParser.cs
- SystemWebExtensionsSectionGroup.cs
- DataTrigger.cs
- ListItemCollection.cs
- SettingsProperty.cs
- MyContact.cs
- RequestCache.cs
- LogicalExpressionEditor.cs
- Stackframe.cs
- ToolStripItemBehavior.cs
- XXXInfos.cs
- AddInServer.cs
- InvalidPropValue.cs
- _ShellExpression.cs
- StreamResourceInfo.cs
- RemotingHelper.cs
- OracleException.cs
- RenderingEventArgs.cs
- validation.cs
- HttpCookieCollection.cs
- CommonGetThemePartSize.cs
- ConnectionPoolManager.cs
- EdmType.cs
- XmlSerializationWriter.cs
- Point3DAnimation.cs
- SerializationSectionGroup.cs
- GridViewColumnCollection.cs
- TreeChangeInfo.cs
- SocketException.cs
- ProviderManager.cs
- SchemaAttDef.cs
- CheckBoxBaseAdapter.cs
- ByteStorage.cs
- ProcessStartInfo.cs
- ObjectStateEntryBaseUpdatableDataRecord.cs
- GlobalItem.cs
- InvalidProgramException.cs
- SelectedGridItemChangedEvent.cs
- DataListItemCollection.cs
- FaultDescription.cs
- IOException.cs
- AttributeQuery.cs
- QuaternionRotation3D.cs
- TemplateModeChangedEventArgs.cs
- SqlMethodTransformer.cs
- MarkupCompilePass1.cs
- Model3DGroup.cs
- Emitter.cs
- ResourceDescriptionAttribute.cs
- metrodevice.cs
- TextFindEngine.cs
- TreeView.cs
- BufferedWebEventProvider.cs
- ReliabilityContractAttribute.cs
- SchemaNamespaceManager.cs
- StatementContext.cs
- ViewGenResults.cs
- WinFormsSpinner.cs
- OneWayElement.cs
- CompilerCollection.cs
- DetailsViewInsertedEventArgs.cs
- TriggerAction.cs
- AudioFileOut.cs
- CompoundFileIOPermission.cs
- XsltLibrary.cs
- DataGridViewElement.cs
- _ReceiveMessageOverlappedAsyncResult.cs
- VectorCollectionConverter.cs
- PkcsMisc.cs
- KeyFrames.cs
- ChannelFactory.cs
- ObjectStateManagerMetadata.cs
- Accessible.cs
- MultiTouchSystemGestureLogic.cs
- ParseNumbers.cs
- ApplicationSecurityManager.cs
- Attachment.cs
- LoggedException.cs
- FrameworkTemplate.cs
- RelationshipManager.cs
- XmlCharType.cs
- HeaderUtility.cs
- DataDocumentXPathNavigator.cs
- Int32CAMarshaler.cs
- TraceRecord.cs
- Operator.cs
- Compilation.cs
- TextEditorThreadLocalStore.cs
- LazyTextWriterCreator.cs