HttpContext and TelemetryInitializer

后端 未结 3 613
余生分开走
余生分开走 2020-12-06 18:20

I want to attach the user\'s \"client_id\" claim as a property to every request sent to Application Insights.

From what I\'ve read, I should be implementing IT

3条回答
  •  孤街浪徒
    2020-12-06 19:21

    You should implement the WebTelemetryInitializerBase which provides you the HttpContext.

    Your code should look like:

    public class ClaimTelemetryInitializer : WebTelemetryInitializerBase
    {
        protected override void OnInitializeTelemetry(
                HttpContext platformContext,
                RequestTelemetry rootRequestTelemetry, 
                ITelemetry telemetry) {
    
                var claim = HttpContext.User.Claims.SingleOrDefault(x => x.Type.Equals(claimName, StringComparison.InvariantCultureIgnoreCase));
    
                if (claim != null)
                {
                    telemetry.Context.Properties[claimName] = claim.Value;
                }
        }
    }
    

提交回复
热议问题