e79aa3c0ed
Former-commit-id: a2155e9bd80020e49e72e86c44da02a8ac0e57a4
74 lines
3.5 KiB
C#
74 lines
3.5 KiB
C#
//------------------------------------------------------------
|
|
// Copyright (c) Microsoft Corporation. All rights reserved.
|
|
//------------------------------------------------------------
|
|
|
|
namespace System.IdentityModel.Diagnostics
|
|
{
|
|
using System.Collections.Generic;
|
|
using System.Diagnostics;
|
|
using System.Globalization;
|
|
using System.Runtime;
|
|
using System.Runtime.CompilerServices;
|
|
using System.Runtime.Diagnostics;
|
|
|
|
static class TraceCode
|
|
{
|
|
// IdentityModel TraceCodes
|
|
public const int IdentityModel = 0xC0000;
|
|
public const int AuthorizationContextCreated = TraceCode.IdentityModel | 0X0002;
|
|
public const int AuthorizationPolicyEvaluated = TraceCode.IdentityModel | 0X0003;
|
|
public const int ServiceBindingCheck = TraceCode.IdentityModel | 0X0004;
|
|
public const int ChannelBindingCheck = TraceCode.IdentityModel | 0x0005;
|
|
public const int Diagnostics = TraceCode.IdentityModel | 0x0006;
|
|
}
|
|
|
|
static class TraceUtility
|
|
{
|
|
static Dictionary<int, string> traceCodes = new Dictionary<int, string>( 5 )
|
|
{
|
|
{ TraceCode.IdentityModel, "IdentityModel" },
|
|
{ TraceCode.AuthorizationContextCreated, "AuthorizationContextCreated" },
|
|
{ TraceCode.AuthorizationPolicyEvaluated, "AuthorizationPolicyEvaluated" },
|
|
{ TraceCode.ServiceBindingCheck, "ServiceBindingCheck" },
|
|
{ TraceCode.ChannelBindingCheck, "ChannelBindingCheck" },
|
|
{ TraceCode.Diagnostics, "Diagnostics" }
|
|
};
|
|
|
|
internal static void TraceEvent( TraceEventType severity, int traceCode, string traceDescription )
|
|
{
|
|
TraceEvent( severity, traceCode, traceDescription, null, null, null );
|
|
}
|
|
|
|
// These methods require a TraceRecord to be allocated, so we want them to show up on profiles if the caller didn't avoid
|
|
// allocating the TraceRecord by using ShouldTrace.
|
|
[MethodImpl( MethodImplOptions.NoInlining )]
|
|
internal static void TraceEvent( TraceEventType severity, int traceCode, string traceDescription, TraceRecord extendedData, object source, Exception exception )
|
|
{
|
|
if ( DiagnosticUtility.ShouldTrace( severity ) )
|
|
{
|
|
Guid activityId = DiagnosticTraceBase.ActivityId;
|
|
Fx.Assert( traceCodes.ContainsKey( traceCode ),
|
|
string.Format( CultureInfo.InvariantCulture, "Unsupported trace code: Please add trace code 0x{0} to the dictionary TraceUtility.traceCodes in {1}",
|
|
traceCode.ToString( "X", CultureInfo.InvariantCulture ), typeof( TraceUtility ) ) );
|
|
string msdnTraceCode = System.ServiceModel.Diagnostics.LegacyDiagnosticTrace.GenerateMsdnTraceCode( "System.IdentityModel", traceCodes[traceCode]);
|
|
DiagnosticUtility.DiagnosticTrace.TraceEvent( severity, traceCode, msdnTraceCode, traceDescription, extendedData, exception, activityId, source );
|
|
}
|
|
}
|
|
|
|
internal static void TraceString( TraceEventType eventType, string formatString, params object[] args )
|
|
{
|
|
if ( DiagnosticUtility.ShouldTrace( eventType ) )
|
|
{
|
|
if ( null != args && args.Length > 0 )
|
|
{
|
|
TraceEvent( eventType, TraceCode.IdentityModel, String.Format( CultureInfo.InvariantCulture, formatString, args ) );
|
|
}
|
|
else
|
|
{
|
|
TraceEvent( eventType, TraceCode.IdentityModel, formatString );
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|