控制发送到AppInsight跟踪的数据

时间:2018-09-12 16:16:01

标签: c# azure azure-application-insights telemetry

是否有一种方法可以控制发送到AppInsights跟踪的数据。如官方文档所述,归档和预处理是一种方法。我无法从POST和PUT获取属性(密码)。由于密码很敏感,因此我不想发送给App Insights。 以下是我的踪迹:

  

“值”:“ client_id = {someguid}&resource = {someguid}&username = {username}&password = {password}&grant_type = password&scope = openid&nca = 1; 1; login-NonInteractive; False”

 public void Initialize(ITelemetry telemetry)
    {
        var requestTelemetry = telemetry as RequestTelemetry;
        if (requestTelemetry != null && (HttpContext.Current.Request.HttpMethod == HttpMethod.Post.ToString() || HttpContext.Current.Request.HttpMethod == HttpMethod.Put.ToString()))
        {
            using (var reader = new StreamReader(HttpContext.Current.Request.InputStream))
            {
                string requestBody = reader.ReadToEnd();
                requestTelemetry.Properties.Add("body", requestBody);
            }
        }
    }

1 个答案:

答案 0 :(得分:0)

在将数据推送到appinsight之前,我们通常序列化我们的类对象。那时在序列化类对象时,应该忽略序列化的属性。在C#中,可以使用System.Web.Script.Serialization库的ScriptIgnore属性。

请浏览以下帖子一次。

https://docs.microsoft.com/en-us/dotnet/api/system.web.script.serialization.scriptignoreattribute?view=netframework-4.8

如果scriptignore无法解决您的问题,则可以创建自己的属性。