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
- TransportContext.cs
- WebScriptEnablingBehavior.cs
- SqlException.cs
- SQLDouble.cs
- CustomCategoryAttribute.cs
- IPPacketInformation.cs
- HierarchicalDataBoundControlAdapter.cs
- WebPageTraceListener.cs
- SqlRemoveConstantOrderBy.cs
- UIntPtr.cs
- SqlUserDefinedAggregateAttribute.cs
- QuotedPrintableStream.cs
- FontCacheUtil.cs
- ToolStripOverflow.cs
- CreateUserWizard.cs
- UrlAuthorizationModule.cs
- LayoutDump.cs
- DataGridViewColumnEventArgs.cs
- ConfigXmlWhitespace.cs
- PersonalizationAdministration.cs
- LicFileLicenseProvider.cs
- WebControl.cs
- ContractNamespaceAttribute.cs
- SeverityFilter.cs
- OleDbConnectionInternal.cs
- StyleHelper.cs
- FixedHyperLink.cs
- InternalBufferManager.cs
- LineVisual.cs
- DataGridTemplateColumn.cs
- SafeThemeHandle.cs
- XmlAttribute.cs
- RegionIterator.cs
- NotFiniteNumberException.cs
- TempFiles.cs
- AuthenticationConfig.cs
- TableStyle.cs
- SerializationStore.cs
- TdsParserHelperClasses.cs
- RemotingServices.cs
- AutoScrollExpandMessageFilter.cs
- Panel.cs
- IPAddress.cs
- Form.cs
- ChtmlFormAdapter.cs
- ResourceReferenceExpression.cs
- HandlerBase.cs
- RayMeshGeometry3DHitTestResult.cs
- ScopelessEnumAttribute.cs
- XXXOnTypeBuilderInstantiation.cs
- InvalidDataException.cs
- TdsParserSafeHandles.cs
- EdmToObjectNamespaceMap.cs
- XamlContextStack.cs
- ITreeGenerator.cs
- RewritingValidator.cs
- DbConnectionPool.cs
- TextTreeText.cs
- ProfileSettingsCollection.cs
- NetworkInformationPermission.cs
- DesignerCalendarAdapter.cs
- RegexRunnerFactory.cs
- GeometryGroup.cs
- Visitors.cs
- DialogResultConverter.cs
- DependencyPropertyKind.cs
- EditingCoordinator.cs
- FilterException.cs
- GroupStyle.cs
- WeakHashtable.cs
- CodePageUtils.cs
- FolderLevelBuildProviderAppliesToAttribute.cs
- sqlser.cs
- serverconfig.cs
- CounterSampleCalculator.cs
- SymLanguageVendor.cs
- FormViewAutoFormat.cs
- SmtpLoginAuthenticationModule.cs
- DesignBindingConverter.cs
- SecurityMode.cs
- SplitterPanel.cs
- lengthconverter.cs
- XmlSchemaExporter.cs
- Section.cs
- FontStretches.cs
- SafeRightsManagementPubHandle.cs
- Wow64ConfigurationLoader.cs
- Metafile.cs
- TTSEngineProxy.cs
- ViewBase.cs
- InvariantComparer.cs
- Validator.cs
- StreamGeometry.cs
- RetrieveVirtualItemEventArgs.cs
- EntityObject.cs
- FileNotFoundException.cs
- Viewport3DVisual.cs
- BaseTemplateBuildProvider.cs
- NegatedCellConstant.cs
- SqlParameterizer.cs