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
- ObjectConverter.cs
- XhtmlBasicPhoneCallAdapter.cs
- DataGridDetailsPresenterAutomationPeer.cs
- __Filters.cs
- ResourceManagerWrapper.cs
- Base64Decoder.cs
- PersonalizationStateInfo.cs
- MetabaseServerConfig.cs
- InputScopeNameConverter.cs
- TCPClient.cs
- DrawingContextDrawingContextWalker.cs
- WindowsToolbarItemAsMenuItem.cs
- TimeoutStream.cs
- CryptoConfig.cs
- _NegotiateClient.cs
- Matrix3D.cs
- UTF32Encoding.cs
- BypassElementCollection.cs
- TablePatternIdentifiers.cs
- MenuCommandService.cs
- ExpressionList.cs
- QueryGenerator.cs
- MenuAdapter.cs
- SrgsRulesCollection.cs
- EdmProperty.cs
- SqlHelper.cs
- ItemsControlAutomationPeer.cs
- Pkcs7Signer.cs
- SqlDataSourceFilteringEventArgs.cs
- RevocationPoint.cs
- ServiceReflector.cs
- IssuedTokenClientElement.cs
- EventLevel.cs
- EntryWrittenEventArgs.cs
- PropertyFilterAttribute.cs
- GridViewAutomationPeer.cs
- Utils.cs
- HttpConfigurationSystem.cs
- SoapFormatterSinks.cs
- UnionQueryOperator.cs
- Image.cs
- DeviceFilterDictionary.cs
- Lock.cs
- AttachmentService.cs
- DataGridViewCellLinkedList.cs
- RuntimeConfig.cs
- DefaultSection.cs
- WebPartZoneDesigner.cs
- AppDomainShutdownMonitor.cs
- AnchoredBlock.cs
- SetterBase.cs
- LocalizableResourceBuilder.cs
- DataServiceHostFactory.cs
- HelpKeywordAttribute.cs
- BamlLocalizerErrorNotifyEventArgs.cs
- XmlElementList.cs
- _NetworkingPerfCounters.cs
- HtmlTextArea.cs
- QueuePathEditor.cs
- HttpResponse.cs
- HMACRIPEMD160.cs
- SqlConnectionFactory.cs
- ConfigXmlAttribute.cs
- SchemaRegistration.cs
- DesignerAttribute.cs
- SqlMethodCallConverter.cs
- ContextMenuStrip.cs
- ConnectionPointGlyph.cs
- FocusWithinProperty.cs
- AspProxy.cs
- DelegateArgumentValue.cs
- ConnectionStringsExpressionBuilder.cs
- XmlObjectSerializer.cs
- CryptoApi.cs
- MasterPageBuildProvider.cs
- CopyNamespacesAction.cs
- ToolBar.cs
- DataServiceQueryProvider.cs
- ThicknessAnimationUsingKeyFrames.cs
- DesignerAdRotatorAdapter.cs
- ComboBoxItem.cs
- InvalidAsynchronousStateException.cs
- TransactionFlowBindingElementImporter.cs
- FrameworkElement.cs
- _SSPIWrapper.cs
- XhtmlBasicCommandAdapter.cs
- EntityProviderFactory.cs
- OptionalRstParameters.cs
- TableAdapterManagerGenerator.cs
- ProcessHost.cs
- TableRowCollection.cs
- FillErrorEventArgs.cs
- NonParentingControl.cs
- ExpanderAutomationPeer.cs
- AsyncSerializedWorker.cs
- BidPrivateBase.cs
- GenericTextProperties.cs
- FixedSOMLineCollection.cs
- FixedSOMTableCell.cs
- InkCanvasSelectionAdorner.cs