RemoveLevel(Index: Integer): Boolean;
RemoveLevel(System.Int32): System.Boolean;
Index. Индекс уровня безопасности, который необходимо удалить.
Метод RemoveLevel осуществляет удаление уровня безопасности и возвращает признак удачного удаления.
Для выполнения примера убедитесь, что в мандатном доступе содержится хотя бы одна категория и два уровня.
Добавьте ссылки на системные сборки: Metabase, ForeSystem (для примера на Fore.NET).
Sub UserProc;
Var
MB: IMetabase;
MS: IMetabaseSecurity;
MU: IMetabasePolicy;
Cat: ISecurityCategory;
MAccess: IMetabaseMandatoryAccess;
Lic: Object;
Begin
MB := MetabaseClass.Active;
// Получим лицензию для возможности работы с менеджером безопасности
Lic := MB.RequestLicense(UiLicenseFeatureType.Adm);
MS := MB.Security;
MU := MS.Policy;
MAccess := MU.MandatoryAccess;
// Удалим второй уровень первой категории
Cat := MAccess.Category(0);
Cat.RemoveLevel(1);
// Сохраним изменения
MS.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;
MS: IMetabaseSecurity;
MU: IMetabasePolicy;
Cat: ISecurityCategory;
MAccess: IMetabaseMandatoryAccess;
Lic: Object;
Begin
MB := Params.Metabase;
// Получим лицензию для возможности работы с менеджером безопасности
Lic := MB.RequestLicense(UiLicenseFeatureType.lftAdm);
MS := MB.Security;
MU := MS.Policy;
MAccess := MU.MandatoryAccess;
// Удалим второй уровень первой категории
Cat := MAccess.Category[0];
Cat.RemoveLevel(1);
// Сохраним изменения
MS.Apply();
// Освободим лицензию
Lic := Null;
End Sub;
После выполнения примера в первой категории безопасности мандатного доступа будет удален второй уровень.
См. также: