我正在使用 .NET Core 3.1。我想User ID使用 ASP.NET Core 身份用户名填充Application Insights 中的属性。我得到了 Microsoft 的这篇文章,但它适用于完整的 .NET Framework。我还尝试了此处 给出的以下代码(我将声明更改为身份)
public class TelemetryEnrichment : TelemetryInitializerBase
{
public TelemetryEnrichment(IHttpContextAccessor httpContextAccessor) : base(httpContextAccessor)
{
}
protected override void OnInitializeTelemetry(HttpContext platformContext, RequestTelemetry requestTelemetry, ITelemetry telemetry)
{
telemetry.Context.User.AuthenticatedUserId =
platformContext.User?.Identity.Name ?? string.Empty;
}
}
Run Code Online (Sandbox Code Playgroud)
但不知道如何将其包含在管道中。我试过了,services.AddSingleton<ITelemetryInitializer, TelemetryEnrichment>();但没有帮助。Application Insights 仍显示其自己的用户 ID。
启动文件
public void ConfigureServices(IServiceCollection services)
{
services.AddDbContext<ApplicationDbContext>(options =>
options.UseSqlServer(
Configuration.GetConnectionString("DefaultConnection")));
services.AddIdentity<ApplicationUser, ApplicationRole>(
options => {
options.Stores.MaxLengthForKeys = 128;
options.User.RequireUniqueEmail = true;
options.Password.RequiredLength …Run Code Online (Sandbox Code Playgroud)