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
- SkinBuilder.cs
- RadioButtonRenderer.cs
- ObjectDataSourceFilteringEventArgs.cs
- Stroke2.cs
- ErrorStyle.cs
- FactoryMaker.cs
- AttributedMetaModel.cs
- HashHelper.cs
- WmlFormAdapter.cs
- WorkflowInlining.cs
- HttpRequest.cs
- LinearGradientBrush.cs
- COM2ComponentEditor.cs
- QilChoice.cs
- PeerTransportListenAddressValidator.cs
- SiteOfOriginContainer.cs
- InvokeHandlers.cs
- PolyQuadraticBezierSegment.cs
- DataRelation.cs
- DataBoundControl.cs
- NavigationPropertyEmitter.cs
- ListItemConverter.cs
- ProxyWebPart.cs
- CancellationToken.cs
- Single.cs
- TextContainer.cs
- InArgumentConverter.cs
- TdsEnums.cs
- BatchServiceHost.cs
- PermissionAttributes.cs
- ActionFrame.cs
- InvokePatternIdentifiers.cs
- SolidBrush.cs
- FixedSOMElement.cs
- ConfigurationSection.cs
- MemoryMappedFileSecurity.cs
- ConfigurationManagerInternal.cs
- WebPartHeaderCloseVerb.cs
- HttpCacheParams.cs
- TimeSpanMinutesOrInfiniteConverter.cs
- RoleService.cs
- ReturnType.cs
- TypeValidationEventArgs.cs
- WorkflowServiceOperationListItem.cs
- Bidi.cs
- BitStream.cs
- ConnectionPointGlyph.cs
- RpcAsyncResult.cs
- XhtmlBasicValidatorAdapter.cs
- SystemInfo.cs
- PreservationFileWriter.cs
- XmlSchemaValidator.cs
- SoapExtensionImporter.cs
- CodeTypeDeclaration.cs
- XmlTypeAttribute.cs
- CompilerInfo.cs
- ToolStripLabel.cs
- ConnectionInterfaceCollection.cs
- NoneExcludedImageIndexConverter.cs
- XamlStyleSerializer.cs
- SmiContext.cs
- UnsafeNativeMethods.cs
- AuthenticateEventArgs.cs
- XmlSerializableReader.cs
- SymmetricKeyWrap.cs
- ParserContext.cs
- SqlCacheDependencyDatabaseCollection.cs
- AutomationElementCollection.cs
- WSSecureConversationDec2005.cs
- BinaryMethodMessage.cs
- GraphicsContainer.cs
- TextLineBreak.cs
- BaseProcessProtocolHandler.cs
- PeerNameResolver.cs
- DataListItem.cs
- ColumnMapTranslator.cs
- ConnectionStringSettings.cs
- DocumentPageTextView.cs
- GZipDecoder.cs
- TypeSystemProvider.cs
- HttpServerUtilityBase.cs
- WebHttpDispatchOperationSelectorData.cs
- XPathChildIterator.cs
- HttpProcessUtility.cs
- KeysConverter.cs
- PathFigureCollectionConverter.cs
- CellTreeNode.cs
- ContextMenu.cs
- SqlBinder.cs
- COM2ExtendedTypeConverter.cs
- ColorAnimation.cs
- WebPartsPersonalizationAuthorization.cs
- __TransparentProxy.cs
- FileSecurity.cs
- DetailsViewPagerRow.cs
- DatePickerAutomationPeer.cs
- BamlTreeMap.cs
- MSAAWinEventWrap.cs
- Stylesheet.cs
- PropertiesTab.cs