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
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;
}
}
}