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
- GridViewEditEventArgs.cs
- WebEvents.cs
- IdleTimeoutMonitor.cs
- SupportsPreviewControlAttribute.cs
- IChannel.cs
- ItemsControlAutomationPeer.cs
- WebPartMenuStyle.cs
- XmlSchemaChoice.cs
- ExtendedProtectionPolicyElement.cs
- MemoryFailPoint.cs
- ErrorHandler.cs
- SafePEFileHandle.cs
- SystemParameters.cs
- TraceHandler.cs
- InstanceLockLostException.cs
- PropertyGridEditorPart.cs
- LogReserveAndAppendState.cs
- CancellationHandler.cs
- CredentialCache.cs
- CodeDelegateInvokeExpression.cs
- ReaderWriterLockSlim.cs
- PrinterResolution.cs
- mil_commands.cs
- RoleService.cs
- MetricEntry.cs
- MethodAccessException.cs
- baseshape.cs
- DeviceFiltersSection.cs
- AnnotationResourceCollection.cs
- MD5HashHelper.cs
- PerfService.cs
- KerberosTokenFactoryCredential.cs
- PngBitmapDecoder.cs
- CharEnumerator.cs
- SequentialActivityDesigner.cs
- XmlSortKey.cs
- CustomError.cs
- SetStoryboardSpeedRatio.cs
- mactripleDES.cs
- ActiveDocumentEvent.cs
- CollectionsUtil.cs
- DataServiceQueryOfT.cs
- DbParameterCollection.cs
- SingleResultAttribute.cs
- SubclassTypeValidatorAttribute.cs
- VectorConverter.cs
- TextRenderer.cs
- PaperSize.cs
- HttpCapabilitiesBase.cs
- ApplicationActivator.cs
- XmlSchemaObject.cs
- XmlSchemaChoice.cs
- SchemaEntity.cs
- shaperfactory.cs
- WindowsListBox.cs
- DisplayInformation.cs
- EnumConverter.cs
- DataGridViewTextBoxCell.cs
- SiteIdentityPermission.cs
- VisualState.cs
- UserControlBuildProvider.cs
- PrintController.cs
- PasswordTextContainer.cs
- FileIOPermission.cs
- ScrollPattern.cs
- ObjectItemCollection.cs
- ActivityValidationServices.cs
- TextBoxDesigner.cs
- ConstraintManager.cs
- ManifestSignatureInformation.cs
- InvalidOleVariantTypeException.cs
- PtsPage.cs
- PointHitTestParameters.cs
- HttpsChannelFactory.cs
- Trace.cs
- XmlILStorageConverter.cs
- CapabilitiesState.cs
- EmbeddedMailObject.cs
- DecoderBestFitFallback.cs
- Pool.cs
- SecureStringHasher.cs
- TimeStampChecker.cs
- BamlRecordReader.cs
- NamespaceInfo.cs
- SigningProgress.cs
- SevenBitStream.cs
- TraceProvider.cs
- PrintDialogException.cs
- Rectangle.cs
- Icon.cs
- XmlIlVisitor.cs
- Int32.cs
- RequestCacheManager.cs
- ResourceReferenceExpression.cs
- ToolStripScrollButton.cs
- DataGridToolTip.cs
- Propagator.JoinPropagator.SubstitutingCloneVisitor.cs
- MessagePropertyDescriptionCollection.cs
- InvalidPropValue.cs
- QilChoice.cs