Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Пакет SDK файлов поддерживает операции маркировки для .msg файлов таким образом, как и любой другой тип файла, за исключением того, что пакет SDK должен включить флаг компонента MSG. Здесь мы посмотрим, как установить этот флаг.
Как упоминалось ранее, создание экземпляра IFileEngine требует объекта настроек, FileEngineSettings. FileEngineSettings можно использовать для передачи параметров пользовательских настроек, которые приложение должно установить для конкретного экземпляра. Свойство CustomSettingsFileEngineSettings используется для установки флага, позволяющего включить обработку файлов .msg для enable_msg_file_type.
Предпосылки
Если вы еще не сделали этого, перед продолжением обязательно выполните следующие предварительные требования:
- Завершить краткое руководство: Инициализация приложения 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флаг устанавливается во время создания файлового движка, после чего .msg файл может обрабатываться объектами, созданными с помощью файлового движкаIFileHandler.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.