Microsoft Information Protection SDK — pobieranie stanu pliku
W interfejsie API plików SDK protokołu MIP funkcja statyczna umożliwia deweloperowi pobieranie stanu pliku bez konieczności tworzenia obiektu aparatu plików, uwierzytelniania, a nawet mip::FileHandler::GetFileStatus() łączności.
Wymagane jest tylko nazwa pliku i utworzenie tekstu mipContext wraz ze ścieżką i strumieniem pliku.
Obsługiwane typy plików
- Office formaty plików oparte na OCP (Office 2010 i nowsze)
- Starsze Office plików (Office 2007)
- Ogólna obsługa plików PFILE
- Pliki, które obsługują adobe XMP
- Poczta e-mail — . MSG Format
Funkcja GetFileStatus()
mip::FileHandler::GetFileStatus() umożliwia deweloperowi pobieranie informacji o stanie pliku. Aby zapoznać się z pełną listą, zapoznaj się z dokumentacja interfejsu API.
W tym artykule zostaną uwzględnione następujące metody:
mip::FileHandler::GetFileStatus()funkcja statyczna- Obiekt FileStatus zawierający etykiety i szczegóły ochrony pliku lub kontenera
IsProtected()WłaściwośćIsLabeled()WłaściwośćContainsProtectedObject()Właściwość
Wymagania
Do utworzenia FileHandler pliku do pracy z określonym plikiem są wymagane:
- A
mipContext - Nie jest wymagane tworzenie aparatów plików
Pobieranie stanu pliku
Aby użyć funkcji statycznej, deweloper musi przekazać ścieżkę pliku lub strumień pliku i mip::FileHandler::GetFileStatus() mipContext, aby wykonać tę funkcję. Wykonanie tej funkcji nie wymaga utworzenia aparatu plików, uwierzytelniania ani połączenia z Internetem.
Ta funkcja jest szczególnie przydatna w przypadku:
- Uzyskiwanie stanu ochrony pliku do odszyfrowywania scenariuszy przed utworzeniem aparatu. Znajomość stanu ochrony z wyprzedzeniem może umożliwić deweloperowi pominięcie narzutu związanego z tworzeniem aparatu, jeśli plik jest już chroniony
- Uzyskiwanie stanu pliku, który może już mieć etykietę przed utworzeniem aparatu w celu próby odczytania tej etykiety (oszczędność czasu)
- Uzyskiwanie stanu pliku MSG, który ma załączniki i który może wymagać analizy lub odszyfrowania wraz z samym plikiem MSG
Zwraca GetFileStatus() obiekt o następujących fileStatus właściwościach:
IsProtected()Właściwość — zwraca wartość logiczną — plik jest chroniony/zaszyfrowanyIsLabeled()Właściwość — zwraca wartość logiczną — plik ma etykietęContainsProtectedObject()Właściwość — zwraca wartość logiczną — plik/kontener/wiadomość zawiera obiekt chroniony.
Zalecenie polega na tym, że wszystkie trzy właściwości są wzajemnie ze sobą połączone, ponieważ plik może mieć wartość zero do wszystkich trzech właściwości i permutacji między nimi.
Ponadto, ponieważ funkcja nie wymaga uwierzytelniania ani aparatu do wykonania, metoda , i odzwierciedla, czy w pliku istnieje znakowanie lub GetFileStatus()IsProtected()IsLabeled()ContainsProtectedObject() ochrona. Nie sprawdza ono, czy etykiety i czy ochrona istnieje w dzierżawie, czy jest możliwe do użycia przez użytkownika. Sprawdzanie poprawności etykiety i ochrony wymagałoby przejść przez proces uwierzytelniania i tworzenia aparatu w celu weryfikacji.
if (options.count("getfilestatus")) {
auto fileStatus = GetFileStatus(filePath, fileStream, mipContext);
if (fileStatus->IsProtected()) {
cout << "File is protected" << endl;
}
if (fileStatus->IsLabeled()) {
cout << "File is labeled" << endl;
}
if (fileStatus->ContainsProtectedObjects()) {
cout << "File contains protected objects" << endl;
}
GetLabel(fileHandler);
return EXIT_SUCCESS;
}
if (options.GetFileStatus) {
var fileStatus = FileHandler.GetFileStatus(options.FilePath, mipContext);
if (fileStatus.IsProtected()) {
Console.WriteLine("The file is protected.");
}
if (fileStatus.IsLabeled()) {
Console.WriteLine("The file is labeled.");
}
if (fileStatus.ContainsProtectedObjects()) {
Console.WriteLine("The file contains protected objects.");
}
return true;
}
if (options.count("getfilestatus")) {
auto fileStatus = GetFileStatus(filePath, fileStream, mipContext);
if (fileStatus->IsProtected()) {
cout << "File is protected" << endl;
}
if (fileStatus->IsLabeled()) {
cout << "File is labeled" << endl;
}
if (fileStatus->ContainsProtectedObjects()) {
cout << "File contains protected objects" << endl;
}
GetLabel(fileHandler);
return EXIT_SUCCESS;
}