相关疑难解决方法(0)

来自 ASP.NET Core 身份的 Application Insights 用户 ID

我正在使用 .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)

c# azure-application-insights asp.net-core

7
推荐指数
1
解决办法
1923
查看次数