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
- ControlCachePolicy.cs
- TypeElementCollection.cs
- AnnouncementSendsAsyncResult.cs
- NoneExcludedImageIndexConverter.cs
- ProfileSettingsCollection.cs
- Choices.cs
- GridViewColumnHeaderAutomationPeer.cs
- PagePropertiesChangingEventArgs.cs
- CallTemplateAction.cs
- ReliableSessionBindingElementImporter.cs
- CookieProtection.cs
- InvokeBase.cs
- DBSchemaTable.cs
- XPathSingletonIterator.cs
- List.cs
- UrlEncodedParameterWriter.cs
- Localizer.cs
- XPathDocumentBuilder.cs
- BaseDataList.cs
- GorillaCodec.cs
- FunctionMappingTranslator.cs
- CodeNamespaceCollection.cs
- SystemColors.cs
- MembershipSection.cs
- BinaryConverter.cs
- TableRowCollection.cs
- ProxyAttribute.cs
- ImageInfo.cs
- WebPartConnectionsCancelEventArgs.cs
- FileCodeGroup.cs
- BitmapEffectDrawing.cs
- VBCodeProvider.cs
- X509WindowsSecurityToken.cs
- ConvertTextFrag.cs
- SemaphoreFullException.cs
- LocatorGroup.cs
- EditorServiceContext.cs
- FormViewUpdatedEventArgs.cs
- IfJoinedCondition.cs
- NameObjectCollectionBase.cs
- future.cs
- Parameter.cs
- PrintPreviewGraphics.cs
- Transactions.cs
- WebControlParameterProxy.cs
- SAPIEngineTypes.cs
- BaseProcessProtocolHandler.cs
- ToolStripComboBox.cs
- CommentAction.cs
- SoapExtensionReflector.cs
- TextDecoration.cs
- filewebresponse.cs
- EmptyControlCollection.cs
- DiscardableAttribute.cs
- InputProcessorProfiles.cs
- RegularExpressionValidator.cs
- OSFeature.cs
- StylusPlugin.cs
- XPathDescendantIterator.cs
- ColorPalette.cs
- InvalidCastException.cs
- GlyphsSerializer.cs
- UserPreferenceChangedEventArgs.cs
- AttachmentService.cs
- List.cs
- SurrogateSelector.cs
- InfoCardBinaryReader.cs
- SiteMapHierarchicalDataSourceView.cs
- DataGridViewTextBoxEditingControl.cs
- XmlExtensionFunction.cs
- ExpressionNormalizer.cs
- TraceListener.cs
- KeySpline.cs
- HybridWebProxyFinder.cs
- StrokeNodeOperations.cs
- DataSetUtil.cs
- BidOverLoads.cs
- FormsAuthenticationConfiguration.cs
- ToolStripDropDown.cs
- XmlUtil.cs
- PasswordPropertyTextAttribute.cs
- XmlWrappingWriter.cs
- NonParentingControl.cs
- Converter.cs
- ConfigurationElementProperty.cs
- CollectionViewGroup.cs
- LambdaCompiler.Lambda.cs
- DecimalFormatter.cs
- SymbolMethod.cs
- COM2Properties.cs
- SoapParser.cs
- WebBrowserDocumentCompletedEventHandler.cs
- XmlDocumentFragment.cs
- SafeFileHandle.cs
- WebControlParameterProxy.cs
- DecimalConverter.cs
- State.cs
- TrackingParameters.cs
- ContentElement.cs
- FlatButtonAppearance.cs