在 application insights 中设置用户名

Setting username in application insights

我是 application insights 的新手,没有使用自定义事件进行设置,我使用的是所有默认设置。该应用程序基于 MVC 5 构建。在 ApplicationInsights.config 中有一条评论说:

"When implementing custom user tracking in your application, remove this telemetry initializer to ensure that the number of users is accurately reported to Application Insights."

我们有一个页面,您需要在该页面上登录,因此默认的用户登录并没有说明那么多,我们宁愿将用户名作为唯一标识符。根据评论,这似乎应该是某种常见的修改,因此易于修改。在 "custom user tracking" 上尝试 google 时,我没有发现任何有趣的东西,这似乎有点奇怪......

那么我如何 link Application Insights 中的用户访问我的用户名,而不是使用某些似乎是默认行为的 cookie?

为了 link 用户到您的自定义用户名,您可以创建以下遥测初始化程序:

public class RealUserIDTelemetryInitializer:ITelemetryInitializer
{
    public void Initialize(Microsoft.ApplicationInsights.Channel.ITelemetry telemetry)
    {
        // Replace this with your custom logic
        if (DateTime.Now.Ticks % 2 > 0)
        {
            telemetry.Context.User.Id = "Ron Weasley";
        }
        else
        {
            telemetry.Context.User.Id = "Hermione Granger";
        }
    }
}

然后在AI.config中注册这个遥测初始化器。

      <TelemetryInitializers>
 ....
        <Add Type="MyApp.RealUserIDTelemetryInitializer, MyApp" />
      </TelemetryInitializers>