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
- InternalDispatchObject.cs
- VisualStyleTypesAndProperties.cs
- DbCommandDefinition.cs
- PagerStyle.cs
- DesignerView.xaml.cs
- TemplateXamlParser.cs
- XPathException.cs
- _ConnectionGroup.cs
- PipelineDeploymentState.cs
- SplashScreen.cs
- RecordsAffectedEventArgs.cs
- X509ServiceCertificateAuthenticationElement.cs
- CalendarDayButton.cs
- TypeConverterAttribute.cs
- Dictionary.cs
- PageThemeBuildProvider.cs
- GroupJoinQueryOperator.cs
- ReferentialConstraint.cs
- TypeLibConverter.cs
- AvTraceDetails.cs
- WebServiceMethodData.cs
- ThrowOnMultipleAssignment.cs
- ColorConverter.cs
- SecurityPermission.cs
- SystemColorTracker.cs
- WorkflowMarkupElementEventArgs.cs
- TableAutomationPeer.cs
- RuleSetDialog.cs
- ToolBarButtonClickEvent.cs
- ComboBoxAutomationPeer.cs
- FaultFormatter.cs
- PropertyEmitter.cs
- GridErrorDlg.cs
- OleTxTransaction.cs
- PreloadedPackages.cs
- Metadata.cs
- XsltLoader.cs
- CompiledRegexRunnerFactory.cs
- WeakReadOnlyCollection.cs
- TrustSection.cs
- FlowDocumentPageViewerAutomationPeer.cs
- ChangesetResponse.cs
- HwndProxyElementProvider.cs
- CellTreeNode.cs
- TargetFrameworkAttribute.cs
- WindowsListViewGroup.cs
- StreamWriter.cs
- CalendarDay.cs
- ComEventsInfo.cs
- ResourceBinder.cs
- AttachInfo.cs
- CriticalExceptions.cs
- Helpers.cs
- NestedContainer.cs
- SrgsRule.cs
- UserMapPath.cs
- FlowStep.cs
- AppLevelCompilationSectionCache.cs
- WaitForChangedResult.cs
- ResourcesBuildProvider.cs
- TCEAdapterGenerator.cs
- NavigationFailedEventArgs.cs
- ElapsedEventArgs.cs
- FormsAuthentication.cs
- ScriptHandlerFactory.cs
- MouseEvent.cs
- _ListenerAsyncResult.cs
- AttributedMetaModel.cs
- InteropEnvironment.cs
- CombinedGeometry.cs
- GPPOINT.cs
- SimpleLine.cs
- ActivityExecutorOperation.cs
- EventLogPermission.cs
- ToolStripLabel.cs
- ScriptRef.cs
- ChannelDispatcherBase.cs
- CompiledXpathExpr.cs
- WebChannelFactory.cs
- MsmqOutputChannel.cs
- LateBoundBitmapDecoder.cs
- DocobjHost.cs
- DynamicRenderer.cs
- SpeechSeg.cs
- Visitor.cs
- StyleModeStack.cs
- StructuralComparisons.cs
- DataTablePropertyDescriptor.cs
- ItemCheckEvent.cs
- AsyncCodeActivity.cs
- PnrpPermission.cs
- MouseButton.cs
- ExceptionUtil.cs
- MatrixTransform.cs
- UnsafeNativeMethods.cs
- CommandCollectionEditor.cs
- SolidBrush.cs
- ErrorStyle.cs
- nulltextnavigator.cs
- DateTimeParse.cs