in src/Azure.Deployments.Extensibility.AspNetCore/Extensions/HttpContextExtensions.cs [28:57]
public static string GetClientAppId(this HttpContext httpContext) =>
httpContext.GetCorrelationHeaderItem(nameof(RequestHeaderNames.ClientAppId));
public static string GetClientRequestId(this HttpContext httpContext) =>
httpContext.GetCorrelationHeaderItem(nameof(RequestHeaderNames.ClientRequestId));
public static string GetCorrelationRequestId(this HttpContext httpContext) =>
httpContext.GetCorrelationHeaderItem(nameof(RequestHeaderNames.CorrelationRequestId));
public static string GetRequestId(this HttpContext httpContext) =>
httpContext.GetCorrelationHeaderItem(nameof(ResponseHeaderNames.RequestId));
private static void SetRequestCorrelationHeaderItem(this HttpContext httpContext, string headerName, string itemName)
{
if (httpContext.Request.Headers.TryGetValue(headerName, out var value))
{
if (Guid.TryParse(value, out var clientRequestId))
{
httpContext.Items[itemName] = clientRequestId.ToString();
}
else
{
httpContext.Items[itemName] = $"<invalid: {value}>";
}
}
else
{
httpContext.Items[itemName] = "<missing>";
}
}