IMetabasePolicy.MandatoryAccess

Синтаксис

MandatoryAccess: IMetabaseMandatoryAccess;

MandatoryAccess: Prognoz.Platform.Interop.Metabase.IMetabaseMandatoryAccess;

Описание

Свойство MandatoryAccess возвращает настройки мандатного доступа менеджера безопасности.

Комментарии

Для настройки прав доступа к объектам используйте свойство SecurityDescriptor.

Пример

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

Sub UserProc;
Var
    MB: IMetabase;
    MS: IMetabaseSecurity;
    Policy: IMetabasePolicy;
    MAccess: IMetabaseMandatoryAccess;
    Cat: ISecurityCategory;
    Lvl: ISecurityLevel;
    Lic: Object;
Begin
    MB := MetabaseClass.Active;
    
// Получим лицензию для возможности работы с менеджером безопасности
    Lic := MB.RequestLicense(UiLicenseFeatureType.Adm);
    MS := MB.Security;
    Policy := MS.Policy;
    
// Активируем использование мандатного метода разграничения доступа
    Policy.MandatoryAccessControl := True;
    MAccess := Policy.MandatoryAccess;
    
// Добавим категорию безопасности с уровнями доступа
    Cat := MAccess.AddCategory("Категория 1");
    Lvl := Cat.AddLevel(
0"Уровень 0");
    Lvl.Marking := 
True// включим возможность маркировки объектов
    Lvl := Cat.AddLevel(1"Уровень 1");
    Lvl.ExportAllowed := 
False// отключим возможность экспорта объектов
    Lvl := Cat.AddLevel(2"Уровень 2");
    Lvl.ExportAllowed := 
False// отключим возможность экспорта объектов
    Lvl.PrintAllowed := False// отключим возможность печати объектов
    // Сохраним изменения
    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;
    Policy: IMetabasePolicy;
    MAccess: IMetabaseMandatoryAccess;
    Cat: ISecurityCategory;
    Lvl: ISecurityLevel;
    Lic: Object;
Begin
    MB := Params.Metabase;
    
// Получим лицензию для возможности работы с менеджером безопасности
    Lic := MB.RequestLicense(UiLicenseFeatureType.lftAdm);
    MS := MB.Security;
    Policy := MS.Policy;
    
// Активируем использование мандатного метода разграничения доступа
    Policy.MandatoryAccessControl := True;
    MAccess := Policy.MandatoryAccess;
    
// Добавим категорию безопасности с уровнями доступа
    Cat := MAccess.AddCategory("Категория 1");
    Lvl := Cat.AddLevel(
0"Уровень 0");
    Lvl.Marking := 
True// включим возможность маркировки объектов
    Lvl := Cat.AddLevel(1"Уровень 1");
    Lvl.ExportAllowed := 
False// отключим возможность экспорта объектов
    Lvl := Cat.AddLevel(2"Уровень 2");
    Lvl.ExportAllowed := 
False// отключим возможность экспорта объектов
    Lvl.PrintAllowed := False// отключим возможность печати объектов
    // Сохраним изменения
    MS.Apply();
    
// Освободим лицензию
    Lic := Null;
End Sub;

После выполнения примера в мандатном доступе менеджера безопасности будет создана новая категория, в которой содержатся три уровня безопасности. Для каждого уровня выставлены различные параметры разрешений экспорта и печати, а также маркировки при экспорте и печати.

См. также:

IMetabasePolicy