Code:
/ WCF / WCF / 3.5.30729.1 / untmp / Orcas / SP / ndp / cdf / src / WCF / ServiceModel / System / ServiceModel / Security / ReferenceList.cs / 1 / ReferenceList.cs
//------------------------------------------------------------ // Copyright (c) Microsoft Corporation. All rights reserved. //----------------------------------------------------------- namespace System.ServiceModel.Security { using System.Xml; using System.ServiceModel.Security.Tokens; using DictionaryManager = System.IdentityModel.DictionaryManager; using ISecurityElement = System.IdentityModel.ISecurityElement; sealed class ReferenceList : ISecurityElement { internal static readonly XmlDictionaryString ElementName = XD.XmlEncryptionDictionary.ReferenceList; const string NamespacePrefix = XmlEncryptionStrings.Prefix; internal static readonly XmlDictionaryString NamespaceUri = EncryptedType.NamespaceUri; internal static readonly XmlDictionaryString UriAttribute = XD.XmlEncryptionDictionary.URI; MostlySingletonListreferredIds; public ReferenceList() { } public int DataReferenceCount { get { return this.referredIds.Count; } } public bool HasId { get { return false; } } public string Id { get { // PreSharp Bug: Property get methods should not throw exceptions. #pragma warning suppress 56503 throw DiagnosticUtility.ExceptionUtility.ThrowHelperError(new NotSupportedException()); } } public void AddReferredId(string id) { if (id == null) { throw DiagnosticUtility.ExceptionUtility.ThrowHelperError(new ArgumentNullException("id")); } this.referredIds.Add(id); } public bool ContainsReferredId(string id) { if (id == null) { throw DiagnosticUtility.ExceptionUtility.ThrowHelperError(new ArgumentNullException("id")); } return this.referredIds.Contains(id); } public string GetReferredId(int index) { return this.referredIds[index]; } public void ReadFrom(XmlDictionaryReader reader) { reader.ReadStartElement(ElementName, NamespaceUri); while (reader.IsStartElement()) { string id = DataReference.ReadFrom(reader); if (this.referredIds.Contains(id)) { throw DiagnosticUtility.ExceptionUtility.ThrowHelperError( new MessageSecurityException(SR.GetString(SR.InvalidDataReferenceInReferenceList, "#" + id))); } this.referredIds.Add(id); } reader.ReadEndElement(); // ReferenceList if (this.DataReferenceCount == 0) { throw DiagnosticUtility.ExceptionUtility.ThrowHelperError(new MessageSecurityException(SR.GetString(SR.ReferenceListCannotBeEmpty))); } } public bool TryRemoveReferredId(string id) { if (id == null) { throw DiagnosticUtility.ExceptionUtility.ThrowHelperError(new ArgumentNullException("id")); } return this.referredIds.Remove(id); } public void WriteTo(XmlDictionaryWriter writer, DictionaryManager dictionaryManager) { if (this.DataReferenceCount == 0) { throw DiagnosticUtility.ExceptionUtility.ThrowHelperError(new InvalidOperationException(SR.GetString(SR.ReferenceListCannotBeEmpty))); } writer.WriteStartElement(NamespacePrefix, ElementName, NamespaceUri); for (int i = 0; i < this.DataReferenceCount; i++) { DataReference.WriteTo(writer, this.referredIds[i]); } writer.WriteEndElement(); // ReferenceList } static class DataReference { internal static readonly XmlDictionaryString ElementName = XD.XmlEncryptionDictionary.DataReference; internal static readonly XmlDictionaryString NamespaceUri = EncryptedType.NamespaceUri; public static string ReadFrom(XmlDictionaryReader reader) { string prefix; string uri = XmlHelper.ReadEmptyElementAndRequiredAttribute(reader, ElementName, NamespaceUri, ReferenceList.UriAttribute, out prefix); if (uri.Length < 2 || uri[0] != '#') { throw DiagnosticUtility.ExceptionUtility.ThrowHelperError( new MessageSecurityException(SR.GetString(SR.InvalidDataReferenceInReferenceList, uri))); } return uri.Substring(1); } public static void WriteTo(XmlDictionaryWriter writer, string referredId) { writer.WriteStartElement(XD.XmlEncryptionDictionary.Prefix.Value, ElementName, NamespaceUri); writer.WriteStartAttribute(ReferenceList.UriAttribute, null); writer.WriteString("#"); writer.WriteString(referredId); writer.WriteEndAttribute(); 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
- Rotation3DAnimationBase.cs
- VirtualPath.cs
- HttpApplicationFactory.cs
- __Filters.cs
- PersonalizationStateQuery.cs
- XhtmlBasicPanelAdapter.cs
- GridItemPatternIdentifiers.cs
- DeferredTextReference.cs
- WSHttpSecurity.cs
- MarkedHighlightComponent.cs
- MessageHeaderT.cs
- ClrProviderManifest.cs
- TraceUtility.cs
- UpdateEventArgs.cs
- DiscoveryDefaults.cs
- JournalNavigationScope.cs
- ContentDisposition.cs
- ElementMarkupObject.cs
- peernodeimplementation.cs
- HandleCollector.cs
- IArgumentProvider.cs
- IdentityReference.cs
- MenuCommandService.cs
- ObjectViewQueryResultData.cs
- ToolStripDropTargetManager.cs
- CompositeFontFamily.cs
- GradientSpreadMethodValidation.cs
- DataObjectCopyingEventArgs.cs
- ProcessManager.cs
- MultipartContentParser.cs
- HttpCookieCollection.cs
- InputScopeManager.cs
- OleDbSchemaGuid.cs
- String.cs
- TypeElement.cs
- EndpointConfigContainer.cs
- MetabaseServerConfig.cs
- MD5CryptoServiceProvider.cs
- TextElementEnumerator.cs
- indexingfiltermarshaler.cs
- HashCodeCombiner.cs
- WebPartEditorOkVerb.cs
- ClientScriptManager.cs
- SQLConvert.cs
- SectionVisual.cs
- BuilderPropertyEntry.cs
- CommandManager.cs
- TypeValidationEventArgs.cs
- WebPartEditorOkVerb.cs
- ErrorFormatter.cs
- BaseTemplateParser.cs
- TableLayoutStyle.cs
- M3DUtil.cs
- X509RawDataKeyIdentifierClause.cs
- XsdCachingReader.cs
- WebPartDisplayModeCancelEventArgs.cs
- SynchronousSendBindingElement.cs
- LookupNode.cs
- DefaultSerializationProviderAttribute.cs
- Identity.cs
- BitmapVisualManager.cs
- ListBindableAttribute.cs
- TextEditorSelection.cs
- BaseAutoFormat.cs
- Underline.cs
- EntityDataSourceDataSelection.cs
- SubpageParagraph.cs
- BindingBase.cs
- SettingsBindableAttribute.cs
- EventRoute.cs
- BorderGapMaskConverter.cs
- AutoResizedEvent.cs
- TabletCollection.cs
- CharKeyFrameCollection.cs
- CancellationState.cs
- Directory.cs
- ImportContext.cs
- SqlCacheDependencyDatabaseCollection.cs
- RegexTree.cs
- NamespaceList.cs
- MimeFormImporter.cs
- SqlLiftIndependentRowExpressions.cs
- SelectorAutomationPeer.cs
- XmlSchemaObject.cs
- WebPartPersonalization.cs
- XmlAttributeProperties.cs
- BypassElementCollection.cs
- CngKeyCreationParameters.cs
- RotateTransform3D.cs
- AuthenticatingEventArgs.cs
- httpstaticobjectscollection.cs
- GridSplitter.cs
- FacetValues.cs
- SqlDataSourceCache.cs
- AsyncOperation.cs
- Comparer.cs
- DataFormat.cs
- TextLineResult.cs
- KeySpline.cs
- SynchronizedReadOnlyCollection.cs