IMetabaseUpdateAccessSubject.Name

Синтаксис

Name: String;

Name: System.String;

Описание

Свойство Name возвращает имя субъекта безопасности.

Пример

Для выполнения примера убедитесь, что на диске «D:\» содержится файл обновления Update.pefx.

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

Sub UserProc;
Var
    Mb: IMetabase;
    Upd: IMetabaseUpdate;
    RootFolder: IMetabaseUpdateFolderNode;
    Subj: IMetabaseUpdateAccessSubject;
    Subjs: IMetabaseUpdateAccessSubjects;
    Se: IMetabaseSecurity;
    Lic: Object;
Begin
    Mb := MetabaseClass.Active;
    
// Получим лицензию для возможности работы с менеджером безопасности
    Lic := Mb.RequestLicense(UiLicenseFeatureType.Adm);
    Upd := Mb.CreateUpdate;
    Upd.LoadFromFileNF(
"D:\Update.pefx");
    Upd.AllowReplaceSD := 
True;
    RootFolder := Upd.RootFolder;
    Subjs := Upd.Subjects;
    Debug.WriteLine(
"Количество субъектов безопасности учавствующих в обновлении прав доступа: ");
    Se := Mb.Security;
    
For Each Subj In Subjs Do
        Debug.WriteLine(Subj.Name);
        Debug.WriteLine(Subj.Description);
        Debug.WriteLine(Subj.Sid.AsString); 
    
End For;
    
// Сохраним изменения
    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;
    Upd: IMetabaseUpdate;
    RootFolder: IMetabaseUpdateFolderNode;
    Subj: IMetabaseUpdateAccessSubject;
    Subjs: IMetabaseUpdateAccessSubjects;
    Se: IMetabaseSecurity;
    Lic: Object;
Begin
    Mb := Params.Metabase;
    
// Получим лицензию для возможности работы с менеджером безопасности
    Lic := Mb.RequestLicense(UiLicenseFeatureType.lftAdm);
    Upd := Mb.CreateUpdate();
    Upd.LoadFromFileNF(
"D:\""Update.pefx", UpdateLoadMode.ulmReplace);
    Upd.AllowReplaceSD := 
True;
    RootFolder := Upd.RootFolder;
    Subjs := Upd.Subjects;
    System.Diagnostics.Debug.WriteLine(
"Количество субъектов безопасности учавствующих в обновлении прав доступа: ");
    Se := Mb.Security;
    
For Each subj In subjs Do
        System.Diagnostics.Debug.WriteLine(Subj.Name);
        System.Diagnostics.Debug.WriteLine(Subj.Description);
        System.Diagnostics.Debug.WriteLine(Subj.Sid.AsString);  
    
End For;
    
// Сохраним изменения
    Se.Apply();
    
// Освободим лицензию
    Lic := Null;
End Sub;

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

См. также:

IMetabaseUpdateAccessSubject