Code:
/ WCF / WCF / 3.5.30729.1 / untmp / Orcas / SP / ndp / cdf / src / WCF / ServiceModel / System / ServiceModel / Diagnostics / MessageTraceRecord.cs / 1 / MessageTraceRecord.cs
//------------------------------------------------------------ // Copyright (c) Microsoft Corporation. All rights reserved. //----------------------------------------------------------- namespace System.ServiceModel.Diagnostics { using System; using System.ServiceModel.Channels; using System.ServiceModel; using System.Diagnostics; using System.Globalization; using System.IdentityModel.Claims; using System.IdentityModel.Policy; using System.Xml; using System.Xml.Serialization; internal class MessageTraceRecord : TraceRecord { Message message; internal MessageTraceRecord(Message message) { this.message = message; } internal override string EventId { get { return TraceRecord.EventIdBase + "Message" + TraceRecord.NamespaceSuffix; } } protected Message Message { get { return this.message; } } internal override void WriteTo(XmlWriter xml) { if ((this.message != null) && (this.message.State != MessageState.Closed) && (this.message.Headers != null)) { try { xml.WriteStartElement("MessageProperties"); if (message.Properties.Encoder != null) { xml.WriteElementString("Encoder", message.Properties.Encoder.ToString()); } xml.WriteElementString("AllowOutputBatching", message.Properties.AllowOutputBatching.ToString()); if (message.Properties.Security != null && message.Properties.Security.ServiceSecurityContext != null) { xml.WriteStartElement("Security"); xml.WriteElementString("IsAnonymous", message.Properties.Security.ServiceSecurityContext.IsAnonymous.ToString()); bool windowsIdentityUsed = message.Properties.Security.ServiceSecurityContext.WindowsIdentity != null && !string.IsNullOrEmpty(message.Properties.Security.ServiceSecurityContext.WindowsIdentity.Name); xml.WriteElementString("WindowsIdentityUsed", windowsIdentityUsed.ToString()); if (DiagnosticUtility.ShouldTraceVerbose) { xml.WriteStartElement("Claims"); AuthorizationContext authContext = message.Properties.Security.ServiceSecurityContext.AuthorizationContext; for (int i = 0; i < authContext.ClaimSets.Count; ++i) { ClaimSet claimSet = authContext.ClaimSets[i]; xml.WriteStartElement("ClaimSet"); xml.WriteAttributeString("ClrType", DiagnosticTrace.XmlEncode(claimSet.GetType().AssemblyQualifiedName)); for (int j = 0; j < claimSet.Count; ++j) { DiagnosticUtility.DebugAssert(null != claimSet[j], "Claim cannot be null"); SecurityTraceRecordHelper.WriteClaim(xml, claimSet[j]); } xml.WriteEndElement(); } xml.WriteEndElement(); } xml.WriteEndElement(); } if (message.Properties.Via != null) { xml.WriteElementString("Via", message.Properties.Via.ToString()); } xml.WriteEndElement(); xml.WriteStartElement(MessageLogTraceRecord.MessageHeadersElementName); for (int i = 0; i < this.message.Headers.Count; i++) { this.message.Headers.WriteHeader(i, xml); } xml.WriteEndElement(); } catch (CommunicationException e) { if (DiagnosticUtility.ShouldTraceInformation) { TraceUtility.TraceEvent(TraceEventType.Information, TraceCode.DiagnosticsFailedMessageTrace, e, message); } } } } } } // 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
- CapabilitiesSection.cs
- SmiEventSink.cs
- CellParaClient.cs
- TriState.cs
- StringConcat.cs
- OdbcUtils.cs
- Vector3D.cs
- ComPersistableTypeElement.cs
- DirectoryNotFoundException.cs
- ChildDocumentBlock.cs
- ToolboxItem.cs
- CodeDirectoryCompiler.cs
- TraceHandler.cs
- OutputCacheSettings.cs
- TransactionTraceIdentifier.cs
- EntityContainer.cs
- RenderDataDrawingContext.cs
- BasicExpandProvider.cs
- ProjectionCamera.cs
- UseLicense.cs
- UInt64.cs
- MetadataSource.cs
- CanonicalXml.cs
- OdbcConnectionHandle.cs
- recordstatescratchpad.cs
- AmbientLight.cs
- TypedTableGenerator.cs
- RegexParser.cs
- CertificateManager.cs
- Quack.cs
- OrderedDictionaryStateHelper.cs
- TripleDES.cs
- ProfileService.cs
- ElementNotAvailableException.cs
- AutoResetEvent.cs
- SqlParameterizer.cs
- ViewService.cs
- PersonalizationEntry.cs
- CompositeFontInfo.cs
- JapaneseCalendar.cs
- NameTable.cs
- ReceiveCompletedEventArgs.cs
- ZipFileInfo.cs
- TemplateBamlTreeBuilder.cs
- HttpRuntimeSection.cs
- NamespaceEmitter.cs
- BufferedStream.cs
- TabletDeviceInfo.cs
- SoapFormatter.cs
- uribuilder.cs
- CodeMemberField.cs
- BaseValidator.cs
- StreamResourceInfo.cs
- WorkflowTraceTransfer.cs
- MimeWriter.cs
- DeviceSpecific.cs
- InheritanceContextChangedEventManager.cs
- OrderedParallelQuery.cs
- XmlAttributes.cs
- UInt16Converter.cs
- wgx_sdk_version.cs
- ReadingWritingEntityEventArgs.cs
- COSERVERINFO.cs
- MetadataItemSerializer.cs
- IdentityModelStringsVersion1.cs
- XamlTemplateSerializer.cs
- DocumentPage.cs
- AuthenticatedStream.cs
- SoapAttributes.cs
- StartUpEventArgs.cs
- Wildcard.cs
- FontNamesConverter.cs
- HttpRawResponse.cs
- CompositeCollection.cs
- Int16AnimationUsingKeyFrames.cs
- CodeSubDirectory.cs
- Label.cs
- LocalClientSecuritySettingsElement.cs
- ipaddressinformationcollection.cs
- Cast.cs
- Pts.cs
- ManagementEventArgs.cs
- StylusPointPropertyId.cs
- SoapSchemaImporter.cs
- XmlSchemaAnnotation.cs
- BitmapEffectDrawing.cs
- SqlAliasesReferenced.cs
- ServicePoint.cs
- COM2EnumConverter.cs
- PolyQuadraticBezierSegmentFigureLogic.cs
- HistoryEventArgs.cs
- sqlpipe.cs
- CapabilitiesRule.cs
- SqlReferenceCollection.cs
- StatusBar.cs
- BlockCollection.cs
- CodeSpit.cs
- DataRowExtensions.cs
- EntityDataSourceQueryBuilder.cs
- X509Utils.cs