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
- InboundActivityHelper.cs
- ActivityXRefPropertyEditor.cs
- VirtualPathProvider.cs
- SamlAuthorityBinding.cs
- StorageTypeMapping.cs
- InfoCardRSAOAEPKeyExchangeFormatter.cs
- BaseCollection.cs
- Object.cs
- DeferredElementTreeState.cs
- WindowsGraphics.cs
- OleDbException.cs
- CustomPopupPlacement.cs
- ProfileModule.cs
- SplitterPanel.cs
- TaskScheduler.cs
- XpsSerializationManager.cs
- DataGridViewComboBoxEditingControl.cs
- SocketException.cs
- SimpleApplicationHost.cs
- SequentialOutput.cs
- MouseBinding.cs
- ControlPropertyNameConverter.cs
- DataGridViewHeaderCell.cs
- formatter.cs
- HtmlFormWrapper.cs
- ResourceManager.cs
- XmlMapping.cs
- Buffer.cs
- FormCollection.cs
- ToolStripDropDownItem.cs
- Stack.cs
- DataObjectPastingEventArgs.cs
- PathGradientBrush.cs
- TypeUsageBuilder.cs
- Roles.cs
- Win32PrintDialog.cs
- ProviderSettings.cs
- XmlArrayItemAttributes.cs
- HandlerFactoryCache.cs
- ValueUtilsSmi.cs
- RepeatInfo.cs
- LinqToSqlWrapper.cs
- CompositeCollection.cs
- AliasExpr.cs
- ModelTreeManager.cs
- WCFServiceClientProxyGenerator.cs
- TaskFileService.cs
- WebResourceAttribute.cs
- PropertyMap.cs
- _ContextAwareResult.cs
- NamespaceList.cs
- InfoCardRSAOAEPKeyExchangeDeformatter.cs
- FocusTracker.cs
- ScriptComponentDescriptor.cs
- BitmapEffectDrawingContextWalker.cs
- ApplicationTrust.cs
- EncodingNLS.cs
- PriorityBinding.cs
- StylusSystemGestureEventArgs.cs
- UITypeEditor.cs
- PropertyStore.cs
- MessageDescriptionCollection.cs
- PeerApplication.cs
- TypeToStringValueConverter.cs
- MinMaxParagraphWidth.cs
- RotateTransform3D.cs
- SplayTreeNode.cs
- CodeSubDirectoriesCollection.cs
- autovalidator.cs
- DataTableMappingCollection.cs
- ItemAutomationPeer.cs
- Control.cs
- ClonableStack.cs
- HwndSubclass.cs
- DataMemberListEditor.cs
- Perspective.cs
- Size3DConverter.cs
- ContentFileHelper.cs
- HitTestParameters.cs
- FrameSecurityDescriptor.cs
- OrderedEnumerableRowCollection.cs
- ForwardPositionQuery.cs
- WebScriptMetadataMessageEncodingBindingElement.cs
- RequestFactory.cs
- SiteMapDataSource.cs
- PanningMessageFilter.cs
- AnnotationHighlightLayer.cs
- Comparer.cs
- AttachedPropertyBrowsableForTypeAttribute.cs
- Win32SafeHandles.cs
- NonSerializedAttribute.cs
- Vertex.cs
- LinqDataSourceStatusEventArgs.cs
- EmptyControlCollection.cs
- Literal.cs
- ListManagerBindingsCollection.cs
- WindowsSecurityTokenAuthenticator.cs
- DataServiceClientException.cs
- MustUnderstandSoapException.cs
- CodeIdentifiers.cs