Как извлечь поля из SensitivityLabelEventData в AuditData в Microsoft Graph SDK?

Я работаю с Microsoft Graph Beta SDK в проекте .NET, где пытаюсь извлечь определенные поля из SensitivityLabelEventData внутри свойства AuditData AuditLogRecord. Однако у меня возникли проблемы с доступом к данным в SensitivityLabelEventData, которые хранятся как Microsoft.Kiota.Abstractions.Serialization.UntypedObject.

Проблемы, с которыми я столкнулся:

Доступ к свойствам: я попытался получить доступ к таким свойствам, как labelEventType и SensitivityLabelId, обрабатывая их как строки или целые числа после преобразования UntypedObject в строку, но, похоже, это неправильный подход.

Ошибка доступа к свойству: я попытался привести UntypedObject к UntypedString или UntypedInteger, чтобы получить доступ к данным напрямую, но мне не удалось получить фактические значения.

Мой вопрос: как правильно извлечь значения (например, labelEventType, SensitivityLabelId, SensitivityLabelOwnerEmail) из объекта SensitivityLabelEventData внутри AuditData? Как мне следует обрабатывать UntypedObject в этом контексте, чтобы правильно получить доступ к этим вложенным полям?

Буду очень признателен за любые рекомендации или примеры!

var autditLogRecords = gsc.Security.AuditLog.Queries[auditLog_Search_id].Records.GetAsync().GetAwaiter().GetResult();

foreach (var auditLogRecord in autditLogRecords.Value)
{
    var additionalData = auditLogRecord.AuditData.AdditionalData;
    var untypedObject = additionalData["SensitivityLabelEventData"] as Microsoft.Kiota.Abstractions.Serialization.UntypedObject;
    if (untypedObject != null)
    {
        // Attempt to access properties within UntypedObject
        var labelEventType = untypedObject.ToString(); // Intended to get the 'labelEventType'
        var sensitivityLabelId = untypedObject.ToString(); // Intended to get the 'SensitivityLabelId'
        var sensitivityLabelOwnerEmail = untypedObject.ToString(); // Intended to get the 'SensitivityLabelOwnerEmail'

        // Setting parameters for SQL command
        comm.Parameters.Add("@SensitivityLabelEventData_LabelEventType", SqlDbType.Int).Value = !string.IsNullOrEmpty(labelEventType) ? Convert.ToInt32(labelEventType) : DBNull.Value;
        comm.Parameters.Add("@SensitivityLabelEventData_SensitivityLabelId", SqlDbType.VarChar, 36).Value = !string.IsNullOrEmpty(sensitivityLabelId) ? sensitivityLabelId : (object)DBNull.Value;
        comm.Parameters.Add("@SensitivityLabelEventData_SensitivityLabelOwnerEmail", SqlDbType.NVarChar, 255).Value = !string.IsNullOrEmpty(sensitivityLabelOwnerEmail) ? sensitivityLabelOwnerEmail : (object)DBNull.Value;
    }
}
Ольга
Вопрос задан27 апреля 2024 г.

1 Ответ

2
Мечислав
Ответ получен3 сентября 2024 г.

Ваш ответ

Загрузить файл.