在应用程序洞察中设置用户名

use*_*278 9 asp.net-mvc azure-application-insights

我是应用程序洞察的新手,并且没有使用自定义事件进行设置,而且我使用了所有默认值.该应用程序基于MVC 5.在ApplicationInsights.config中有一条评论说:

"在应用程序中实现自定义用户跟踪时,请删除此遥测初始化程序,以确保准确地向Application Insights报告用户数量."

我们有一个页面,您需要登录,因此默认用户日志记录不是那么多,我们宁愿将用户名作为唯一标识符.基于评论,似乎这应该是某种常见的修改,因此易于修改.当试图谷歌"自定义用户跟踪"时,我发现任何有趣的东西似乎有点奇怪......

那么如何将Application Insights中的用户链接到我的用户名而不是一些似乎是默认行为的cookie呢?

Ale*_*kou 13

要将用户链接到您的自定义用户名,您可以创建以下遥测初始值设定项:

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";
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

然后在AI.config中注册此遥测初始化程序.

      <TelemetryInitializers>
 ....
        <Add Type="MyApp.RealUserIDTelemetryInitializer, MyApp" />
      </TelemetryInitializers>
Run Code Online (Sandbox Code Playgroud)