我希望在Application Insights中添加登录用户的名称,以便在默认情况下替换cookie。我发现这个post做了类似的事情
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";
}
}
}
我的问题是,如何将数据传递给此?我的Api上有一个登录方法可以返回一些信息,但调用这个初始化程序是我很困惑的事情。
答案 0 :(得分:1)
我们曾经遇到过同样的问题,虽然不是用户ID,而是操作ID。但是同样的原则可以在这里应用。我们使用configuration.TelemetryInitializers.Add(new RealUserIDTelemetryInitializer(() =>
CallContext.LogicalGetData(UserId)?.ToString()));
为初始化程序提供数据(请参阅初始化程序here的完整代码和用法here)。
:before
然后使用代码添加初始化程序:
ul li
{
display: inline-block;
}
.icon-tutti:before {
content: "\e908";
}
span [class^=icon-] {
font-size: 1.3em;
margin-right: 10px;
color: #ff653e;
}
正如您在我们的案例中所看到的,数据是使用当前线程上的数据提供的,但在您的情况下,我认为可以更轻松地访问用户名,因此您可能会注入另一个Func。