Zestaw SDK plików — przetwarzanie plików msg wiadomości e-mail (C#)
Zestaw SDK plików obsługuje operacje etykietowania dla plików msg w sposób identyczny z dowolnym innym typem pliku, z tą różnicą, że zestaw SDK wymaga od aplikacji włączenia flagi funkcji MSG. W tym miejscu zobaczymy, jak ustawić tę flagę.
Jak wspomniano wcześniej, utworzenie wystąpienia IFileEngine
obiektu wymaga obiektu ustawienia . FileEngineSettings
FileEngine Ustawienia może służyć do przekazywania parametrów dla ustawień niestandardowych, które aplikacja musi ustawić dla określonego wystąpienia. CustomSettings
właściwość parametru FileEngineSettings
służy do ustawiania flagi w enable_msg_file_type
celu włączenia przetwarzania plików msg.
Wymagania wstępne
Jeśli jeszcze tego nie zrobiono, przed kontynuowaniem upewnij się, że zostały spełnione następujące wymagania wstępne:
- Ukończ szybki start: inicjowanie aplikacji zestawu SDK plików (C#), które najpierw kompiluje początkowe rozwiązanie programu Visual Studio. Ten przewodnik Szybki start "Instrukcje — przetwarzanie plików msg wiadomości e-mail (C#)" opiera się na poprzednim.
- Zapoznaj się z pojęciami dotyczącymi zestawu MIP SDK plików poczty e-mail.
- Opcjonalnie: Przejrzyj aparaty plików w pojęciach dotyczących zestawu MIP SDK .
- Opcjonalnie: Zapoznaj się z procedurami obsługi plików w pojęciach dotyczących zestawu MIP SDK .
Ustawianie enable_msg_file_type i używanie zestawu SDK plików do etykietowania pliku msg
W dalszej części przewodnika Szybki start inicjowania aplikacji interfejsu API plików zmodyfikuj kod konstrukcyjny aparatu plików, aby ustawić enable_msg_file_type flag
, a następnie użyj aparatu plików do etykietowania pliku msg.
Otwórz rozwiązanie programu Visual Studio utworzone w poprzednim przewodniku "Szybki start: inicjowanie aplikacji zestawu SDK plików (C#)".
Za pomocą Eksplorator rozwiązań otwórz plik cs w projekcie zawierający implementację
Main()
metody . Domyślnie ma taką samą nazwę jak projekt zawierający go, który został określony podczas tworzenia projektu.Usuń implementację funkcji z poprzedniego
Main()
przewodnika Szybki start.Main()
Wewnątrz treści wstaw następujący kod. W poniższej flagi blokuenable_msg_file_type
kodu jest ustawiana podczas tworzenia aparatu plików, plik msg może być następnie przetwarzany przezIFileHandler
obiekty utworzone przy użyciu aparatu plików.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; }
Aby uzyskać więcej informacji na temat operacji na plikach, zapoznaj się z pojęciami dotyczącymi obsługi plików.
Zastąp wartości symboli zastępczych w kodzie źródłowym przy użyciu następujących wartości:
Symbol zastępczy Wartość <input-file-path> Pełna ścieżka do pliku komunikatu wejściowego testu, na przykład: c:\\Test\\message.msg
.<output-file-path> Pełna ścieżka do pliku wyjściowego, który będzie etykietą kopii pliku wejściowego, na przykład: c:\\Test\\message_labeled.msg
.<label-id> Identyfikator labelId pobrany przy użyciu aparatu plików, na przykład: 667466bf-a01b-4b0a-8bbf-a79a3d96f720
.
Kompilowanie i testowanie aplikacji
Skompiluj aplikację kliencą przy użyciu klawisza F6 (rozwiązanie kompilacji). Jeśli nie masz błędów kompilacji, użyj klawisza F5 (Rozpocznij debugowanie), aby uruchomić aplikację.
Original file: C:\Test.msg
Labeled file: C:\Test_Labeled.msg
Label applied to file: Confidential
Press a key to continue.