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;
После выполнения примера в консоли будет выведена подробная информация о произведенных операциях во время применения политики безопасности.
См. также: