Loggen des Referers mit Azure Application Insights
Standardmäßig wird der Referer, also die Quelle des Aurufs des HTTP-Requests, nicht von der Application Insights Middleware des ASP.NET SDKs gespeichert. Um dies dennoch im Log zu hinterlegen, muss ein eigener ITelemetryInitializer
geschrieben werden.
public class HttpRefererTelemetryInitializer : ITelemetryInitializer
{
private readonly IHttpContextAccessor _httpContextAccessor;
public HttpRefererTelemetryInitializer(IHttpContextAccessor httpContextAccessor)
{
_httpContextAccessor = httpContextAccessor;
}
public void Initialize(ITelemetry telemetry)
{
if (telemetry is RequestTelemetry requestTelemetry)
{
requestTelemetry.Context.GlobalProperties.Add("Url-Referer",
_httpContextAccessor.HttpContext.Request.Headers["Referer"]);
}
}
}
Dieser muss anschließend noch registriert werden
services.AddSingleton<ITelemetryInitializer, HttpRefererTelemetryInitializer>();