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
- TraceRecord.cs
- Listbox.cs
- Model3DCollection.cs
- GenericRootAutomationPeer.cs
- TempEnvironment.cs
- CalculatedColumn.cs
- DbMetaDataFactory.cs
- QilNode.cs
- DurableEnlistmentState.cs
- _PooledStream.cs
- CellParaClient.cs
- DataObjectMethodAttribute.cs
- PassportIdentity.cs
- SecurityState.cs
- WorkflowStateRollbackService.cs
- WrappedReader.cs
- SymLanguageType.cs
- PolyBezierSegment.cs
- ApplicationInfo.cs
- RealProxy.cs
- SplitterEvent.cs
- MouseDevice.cs
- QuerySettings.cs
- ExpandSegment.cs
- AssemblyContextControlItem.cs
- CodeCommentStatementCollection.cs
- XmlSchemaExporter.cs
- ResourceCategoryAttribute.cs
- Odbc32.cs
- WmlImageAdapter.cs
- MobileControlsSection.cs
- WindowsFormsHost.cs
- CorrelationManager.cs
- MyContact.cs
- TypeDependencyAttribute.cs
- TemplateKeyConverter.cs
- ObjectDataSourceEventArgs.cs
- AuthenticationService.cs
- TaskFileService.cs
- TaiwanCalendar.cs
- LongTypeConverter.cs
- SizeValueSerializer.cs
- MenuCommandsChangedEventArgs.cs
- DataGridViewColumnCollection.cs
- DocumentManager.cs
- CommandValueSerializer.cs
- DockPanel.cs
- ConstructorExpr.cs
- PointCollectionConverter.cs
- FormViewDeletedEventArgs.cs
- ReliableChannelListener.cs
- EventWaitHandleSecurity.cs
- PropertyInformation.cs
- FileAuthorizationModule.cs
- JsonSerializer.cs
- XmlSchemaException.cs
- IconHelper.cs
- DeflateStream.cs
- TableLayoutSettingsTypeConverter.cs
- Gdiplus.cs
- SineEase.cs
- XmlSchemaObjectCollection.cs
- SiteMapNodeCollection.cs
- ErrorFormatterPage.cs
- DifferencingCollection.cs
- NavigatorOutput.cs
- StaticFileHandler.cs
- SoapMessage.cs
- DataGridCellItemAutomationPeer.cs
- MoveSizeWinEventHandler.cs
- ToolStripDropDown.cs
- TimeoutException.cs
- FirstMatchCodeGroup.cs
- MethodBody.cs
- WorkflowInlining.cs
- GlobalDataBindingHandler.cs
- Object.cs
- DbMetaDataFactory.cs
- RoleService.cs
- ErrorBehavior.cs
- BindingEntityInfo.cs
- HostedHttpContext.cs
- TemplateBaseAction.cs
- ScriptControlDescriptor.cs
- SchemaComplexType.cs
- HuffModule.cs
- HtmlEncodedRawTextWriter.cs
- ResourceDescriptionAttribute.cs
- TypedTableHandler.cs
- XamlTemplateSerializer.cs
- DoneReceivingAsyncResult.cs
- SecurityVersion.cs
- ReflectPropertyDescriptor.cs
- ClientConfigPaths.cs
- MetadataStore.cs
- FileUtil.cs
- IsolatedStorageFilePermission.cs
- TraceSource.cs
- SqlDeflator.cs
- AuthenticationService.cs