Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Пакет SDK файлов поддерживает операции маркировки для .msg файлов таким же образом, как и любой другой тип файла, за исключением того, что пакет SDK должен включить флаг компонента MSG. В этом кратком руководстве показано, как задать этот флаг.
Как упоминалось ранее, для создания экземпляра IFileEngine требуется объект настроек FileEngineSettings. Приложение использует FileEngineSettings для передачи пользовательских параметров для конкретного экземпляра. Свойство CustomSettings у FileEngineSettings устанавливает флаг enable_msg_file_type, чтобы включить обработку .msg-файлов.
Предпосылки
Если вы еще не сделали этого, перед продолжением обязательно выполните следующие предварительные требования:
- Завершить краткое руководство: Инициализация приложения SDK для файлов (C#) сначала, который создает начальное решение Visual Studio. Это краткое руководство «Как обрабатывать файлы сообщений электронной почты .msg (C#)» основывается на предыдущем.
- Ознакомьтесь с понятиями SDK MIP для файлов электронной почты.
- По желанию: ознакомьтесь с концепциями модулей обработки файлов в пакете SDK для MIP.
- При необходимости: изучите понятия обработчиков файлов в MIP SDK.
Установите enable_msg_file_type и используйте File SDK для маркировки файлов .msg.
В продолжение краткого руководства по инициализации приложения API файлов измените код создания файлового движка, чтобы задать enable_msg_file_type flag, а затем используйте файловый движок для обозначения файла .msg.
Откройте решение Visual Studio, созданное в предыдущем разделе "Краткое руководство. Инициализация приложения пакета SDK для файлов (C#)".
В Обозреватель решений откройте файл .cs в проекте, который содержит реализацию
Main()метода. По умолчанию используется то же имя, что и проект, содержащий его, указанный во время создания проекта.Удалите реализацию функции
Main()из предыдущего краткого руководства.Main()В текст вставьте следующий код. В следующем блоке кода при создании файлового механизма задается флагenable_msg_file_type.IFileHandlerОбъекты, созданные с помощью обработчика файлов, могут обрабатывать .msg файл.static void Main(string[] args) { // Initialize Wrapper for File SDK operations. MIP.Initialize(MipComponent.File); // Create ApplicationInfo, setting the clientID from Azure AD App Registration as the ApplicationId. ApplicationInfo appInfo = new ApplicationInfo() { ApplicationId = clientId, ApplicationName = appName, ApplicationVersion = "1.0.0" }; // Instantiate the AuthDelegateImpl object, passing in AppInfo. AuthDelegateImplementation authDelegate = new AuthDelegateImplementation(appInfo); MipContext mipContext = MIP.CreateMipContext(appInfo,"mip_data",LogLevel.Trace,null,null); // Initialize and instantiate the File Profile. // Create the FileProfileSettings object. // Initialize file profile settings to create/use local state. var profileSettings = new FileProfileSettings(mipContext, CacheStorageType.OnDiskEncrypted, new ConsentDelegateImplementation()); // Load the Profile async and wait for the result. var fileProfile = Task.Run(async () => await MIP.LoadFileProfileAsync(profileSettings)).Result; // Create a FileEngineSettings object, then use that to add an engine to the profile. var customSettings = new List<KeyValuePair<string, string>>(); customSettings.Add(new KeyValuePair<string, string>("enable_msg_file_type", "true")); // Create a FileEngineSettings object, then use that to add an engine to the profile. var engineSettings = new FileEngineSettings("user1@tenant.com", authDelegate, "", "en-US"); engineSettings.Identity = new Identity("user1@tenant.com"); //set custom settings for the engine engineSettings.CustomSettings = customSettings; //Add fileEngine to profile var fileEngine = Task.Run(async () => await fileProfile.AddEngineAsync(engineSettings)).Result; //Set file paths string inputFilePath = "<input-file-path>"; //.msg file to be labeled string actualFilePath = inputFilePath; string outputFilePath = "<output-file-path>"; //labeled .msg file string actualOutputFilePath = outputFilePath; //Create a file handler for original file var fileHandler = Task.Run(async () => await fileEngine.CreateFileHandlerAsync(inputFilePath, actualFilePath, true)).Result; // List labels available to the user and use one of them to label the MSG file. foreach (var label in fileEngine.SensitivityLabels) { Console.WriteLine(string.Format("{0} - {1}", label.Name, label.Id)); if (label.Children.Count > 0) { foreach (Label child in label.Children) { Console.WriteLine(string.Format("\t{0} - {1}", child.Name, child.Id)); } } } string labelId = "<label-id>"; //label retrieved using file engine LabelingOptions labelingOptions = new LabelingOptions() { AssignmentMethod = options.AssignmentMethod }; fileHandler.SetLabel(labelId, labelingOptions, new ProtectionSettings()); // Commit changes, save as outputFilePath var result = Task.Run(async () => await fileHandler.CommitAsync(outputFilePath)).Result; // Create a new handler to read the labeled file metadata var handlerModified = Task.Run(async () => await fileEngine.CreateFileHandlerAsync(outputFilePath, actualOutputFilePath, true)).Result; Console.WriteLine(string.Format("Original file: {0}", inputFilePath)); Console.WriteLine(string.Format("Labeled file: {0}", outputFilePath)); Console.WriteLine(string.Format("Label applied to file: {0}", handlerModified.Label.Name)); Console.WriteLine("Press a key to continue."); Console.ReadKey(); // Application Shutdown fileHandler = null; handlerModified = null; fileEngine = null; fileProfile = null; mipContext = null; }Дополнительные сведения об операциях с файлами см. в разделе "Основные понятия обработчика файлов".
Замените значения заполнителей в исходном коде следующими значениями:
Замещающее поле Ценность <путь к входному файлу> Полный путь к файлу тестового входного сообщения, например: c:\\Test\\message.msg<путь к выходным файлам> Полный путь к выходному файлу, который является помеченной копией входного файла, например: c:\\Test\\message_labeled.msg<label-id> Идентификатор метки, полученный с помощью обработчика файлов, например: 667466bf-a01b-4b0a-8bbf-a79a3d96f720
Создание и тестирование приложения
Используйте F6 (сборка решения) для создания клиентского приложения. Если у вас нет ошибок сборки, используйте F5 (начать отладку) для запуска приложения.
Original file: C:\Test.msg
Labeled file: C:\Test_Labeled.msg
Label applied to file: Confidential
Press a key to continue.