FindByGuidStr(GuidStr: String): IABACEvaluatedObject;
FindByGuidStr(String): Prognoz.Platform.Interop.ABAC.IABACEvaluatedObject;
Метод FindByGuidStr осуществляет поиск элемента структуры атрибутного доступа по уникальному идентификатору.
Для выполнения примера убедитесь, что в атрибутном доступе содержится набор политик.
Для выполнения примера добавьте ссылки на системные сборки: ABAC, Metabase, ForeSystem (для примера на Fore.NET).
Sub Main;
Var
PolicyObject: IABACRootPolicyObject;
Policy: IABACEvaluatedObject;
MB: IMetabase;
MS: IMetabaseSecurity;
Lic: Object;
Begin
MB := MetabaseClass.Active;
// Получим лицензию для возможности работы с менеджером безопасности
Lic := MB.RequestLicense(UiLicenseFeatureType.Adm);
MS := MB.Security;
PolicyObject := MB.Security.Policy.ABACRules;
//Найдем элемент структуры атрибутного доступа по уникальному идентификатору
Policy := PolicyObject.FindByGuidStr("{31C234D0-73CB-4223-8829-AA8C58C2D0AD}");
// Выведем в консоль уникальный идентификатор набора политик
Debug.WriteLine(Policy.Name(MB.CurrentLocale)); // наименование
Debug.WriteLine(Policy.Key); // ключ
Debug.WriteLine(Policy.Id); // идентификатор
// Освободим лицензию
Lic := Null;
End Sub Main;
Imports Prognoz.Platform.Interop.ABAC;
Imports Prognoz.Platform.Interop.Metabase;
Imports Prognoz.Platform.Interop.ForeSystem;
…
Public Shared Sub Main(Params: StartParams);
Var
PolicyObject: IABACRootPolicyObject;
Policy: IABACEvaluatedObject;
MB: IMetabase;
MS: IMetabaseSecurity;
Lic: Object;
Begin
MB := Params.Metabase;
// Получим лицензию для возможности работы с менеджером безопасности
Lic := MB.RequestLicense(UiLicenseFeatureType.lftAdm);
MS := MB.Security;
PolicyObject := MB.Security.Policy.ABACRules;
//Найдем элемент структуры атрибутного доступа по уникальному идентификатору
Policy := PolicyObject.FindByGuidStr("{31C234D0-73CB-4223-8829-AA8C58C2D0AD}");
// Выведем в консоль уникальный идентификатор набора политик
System.Diagnostics.Debug.WriteLine(Policy.Name[MB.CurrentLocale]); // наименование
System.Diagnostics.Debug.WriteLine(Policy.Key); // ключ
System.Diagnostics.Debug.WriteLine(Policy.Id); // идентификатор
// Освободим лицензию
Lic := Null;
End Sub;
В результате выполнения примера в консоль будет выведено наименование, ключ и идентификатор указанной политики:
Тестовый набор политик
37
PLCST37
См. также: