IMetabaseSecurity.NewSnapshot

Синтаксис

NewSnapshot: ISecuritySnapshot;

NewSnapshot: Prognoz.Platform.Interop.Metabase.ISecuritySnapshot;

Описание

Метод NewSnapshot создает объект для резервного копирования политики безопасности.

Комментарии

Для сохранения политики безопасности в файл *.pppolicy используйте свойство ISecuritySnapshot.SaveToFile.

Пример

Для выполнения примера убедитесь, что в корневом каталоге диска «C» содержится файл «test.pppolicy».

Добавьте ссылки на системные сборки: Metabase, ForeSystem (для примера на Fore.NET).

Sub UserProc;
Var
    MB: IMetabase;
    SE: IMetabaseSecurity;
    SS: ISecuritySnapshot;
    Log: ISecuritySnapshotLog;
    Lic: Object;
Begin
    MB := MetabaseClass.Active;
    
// Получим лицензию для возможности работы с менеджером безопасности
    Lic := MB.RequestLicense(UiLicenseFeatureType.Adm);
    SE := MB.Security;
    
// Создадим объект для резервного копирования
    SS := SE.NewSnapshot;
    
// Применим политику безопасности из файла
    SS.ApplyFromFile("C:\test.pppolicy");
    Log := SS.Log;
    Debug.WriteLine(
"ApplyState SubjectName SubjectType Message");
    
While Not Log.Eof Do
        
Select Case (Log.ApplyState As Integer)
            
Case 0 : Debug.Write("None ");
            
Case 1 : Debug.Write("Create ");
            
Case 2 : Debug.Write("Change ");
            
Case 3 : Debug.Write("Error ");
            
Case 4 : Debug.Write("Deleted ");
        
End Select;
        Debug.Write(Log.SubjectName + 
" ");
        
Select Case (Log.SubjectType As Integer)
            
Case 1 : Debug.Write("User ");
            
Case 2 : Debug.Write("Group ");
        
End Select;
        Debug.Write(Log.Message);
        Log.Next;
        Debug.WriteLine(
"");
    
End While;
    
// Сохраним изменения
    SE.Apply;
    
// Освободим лицензию
    Lic := Null;
End Sub UserProc;

Imports Prognoz.Platform.Interop.Metabase;
Imports Prognoz.Platform.Interop.ForeSystem;

Public Shared Sub Main(Params: StartParams);
Var
    MB: IMetabase;
    SE: IMetabaseSecurity;
    SS: ISecuritySnapshot;
    Log: ISecuritySnapshotLog;
    Lic: Object;
Begin
    MB := Params.Metabase;
    
// Получим лицензию для возможности работы с менеджером безопасности
    Lic := MB.RequestLicense(UiLicenseFeatureType.lftAdm);
    SE := MB.Security;
    
// Создадим объект для резервного копирования
    SS := SE.NewSnapshot();
    
// Применим политику безопасности из файла
    SS.ApplyFromFile("C:\test.pppolicy"Null);
    Log := SS.Log;
    System.Diagnostics.Debug.WriteLine(
"ApplyState SubjectName SubjectType Message");
    
While Not Log.Eof() Do
        
Select Case (Log.ApplyState As Integer)
            
Case 0 : System.Diagnostics.Debug.Write("None ");
            
Case 1 : System.Diagnostics.Debug.Write("Create ");
            
Case 2 : System.Diagnostics.Debug.Write("Change ");
            
Case 3 : System.Diagnostics.Debug.Write("Error ");
            
Case 4 : System.Diagnostics.Debug.Write("Deleted ");
        
End Select;
        System.Diagnostics.Debug.Write(Log.SubjectName + 
" ");
        
Select Case (Log.SubjectType As Integer)
            
Case 1 : System.Diagnostics.Debug.Write("User ");
            
Case 2 : System.Diagnostics.Debug.Write("Group ");
        
End Select;
        System.Diagnostics.Debug.Write(Log.Message);
        Log.Next();
        System.Diagnostics.Debug.WriteLine(
"");
    
End While;
    
// Сохраним изменения
    SE.Apply();
    
// Освободим лицензию
    Lic := Null;
End Sub;

После выполнения примера в консоли будет выведена подробная информация о произведенных операциях во время применения политики безопасности.

См. также:

IMetabaseSecurity