Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
El SDK de archivos admite operaciones de etiquetado para .msg archivos de la misma manera que cualquier otro tipo de archivo, excepto que el SDK necesita la aplicación para habilitar la marca de característica MSG. En este inicio rápido se muestra cómo establecer esta marca.
Como se comentó anteriormente, instanciar IFileEngine requiere el objeto de configuración FileEngineSettings. La aplicación usa FileEngineSettings para pasar la configuración personalizada para una instancia determinada. La propiedad CustomSettings de FileEngineSettings establece el indicador enable_msg_file_type para habilitar el procesamiento de archivos .msg.
Prerrequisitos
Si aún no lo ha hecho, asegúrese de completar los siguientes requisitos previos antes de continuar:
- Complete primero Inicio rápido: Inicialización de aplicaciones cliente del SDK de archivo (C#), que compila una solución de inicio de Visual Studio. Esta guía de inicio rápido sobre "Cómo procesar archivos de mensajes de correo electrónico .msg (C#)" se basa en la guía anterior.
- Revise los conceptos del SDK de MIP de archivos de correo electrónico.
- Opcional: Revise los conceptos sobre motores de archivo en el SDK de MIP.
- Opcional: revise los conceptos de controladores de archivos en el SDK de MIP.
Establecer enable_msg_file_type y usar el SDK de archivos para etiquetar archivos .msg.
En continuación del inicio rápido de inicialización de la aplicación File API, modifique el código de construcción del motor de archivos para establecer enable_msg_file_type flag y, a continuación, use el motor de archivos para etiquetar un archivo .msg.
Abra la solución de Visual Studio que creó en el anterior "Inicio rápido: inicialización de la aplicación del SDK de archivos (C#)".
En Explorador de soluciones, abra el archivo .cs en el proyecto que contiene la implementación del
Main()método . El valor predeterminado es el mismo nombre que el proyecto que lo contiene, que especificó durante la creación del proyecto.Quite la implementación de la
Main()función del inicio rápido anterior. Dentro delMain()cuerpo, inserte el código siguiente. En el siguiente bloque de código, la creación del motor de archivo establece la marcaenable_msg_file_type.IFileHandlerLos objetos creados mediante el motor de archivos pueden procesar un archivo .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; }Para obtener más información sobre las operaciones de archivo, consulte Conceptos del controlador de archivos.
Reemplace los valores de marcador de posición en el código fuente por los siguientes valores:
Marcador de posición Valor <ruta-del-archivo-de-entrada> Ruta de acceso completa a un archivo de mensaje de entrada de prueba, por ejemplo: c:\\Test\\message.msg.<ruta del archivo de salida> Ruta de acceso completa al archivo de salida, que es una copia etiquetada del archivo de entrada, por ejemplo: c:\\Test\\message_labeled.msg.<etiqueta-id> Identificador de etiqueta recuperado mediante el motor de archivos, por ejemplo: 667466bf-a01b-4b0a-8bbf-a79a3d96f720.
Crear y probar la aplicación
Presione F6 (Compilar solución) para compilar la aplicación cliente. Si no tiene errores de compilación, use F5 (Iniciar depuración) para ejecutar la aplicación.
Original file: C:\Test.msg
Labeled file: C:\Test_Labeled.msg
Label applied to file: Confidential
Press a key to continue.