IMetabaseUpdateAccessSubject.RemappingSid

Синтаксис Fore

RemappingSid: ISid;

Синтаксис Fore.NET

RemappingSid: Prognoz.Platform.Interop.Metabase.ISid;

Описание

Свойство RemappingSid возвращает соответствующий идентификатор субъекта безопасности при применении обновления.

Пример Fore

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

Sub main;
Var
    Mb: IMetabase;
    Upd: IMetabaseUpdate;
Begin   
    MB := MetabaseClass.Active;
    Upd := Mb.CreateUpdate;
    Upd.LoadFromFileNF("D:\Update.pefx");
    Upd.Prepare;
    updateprepare(Upd);
    Upd.SaveAvailable("D:\Update.pefx");
End Sub main;

Sub updateprepare (update: IMetabaseUpdate);
    Var
    mbuss: IMetabaseUpdateAccessSubjects;
    mbus: IMetabaseUpdateAccessSubject;
    Upd: IMetabaseUpdate;
    i: Integer;
    Begin
    Upd := update;
    mbuss := Upd.Subjects;
    For i:=0 To mbuss.Count - 1 Do
        mbus := mbuss.Item(i);
        debug.WriteLine("Соответствующий сид пользователя:  "+mbus.RemappingSid.AsString);
        debug.WriteLine("Альтернативный сид пользователя (поиск по имени, если субъект не найден по сиду):  "+mbus.AlternativeSid.AsString);    
        If mbus.AlternativeSid.AsString = "" Then
            If mbus.RemappingSid.AsString <> "" Then
                debug.WriteLine(mbuss.FindBySidString(mbus.RemappingSid.AsString).Name);
            Else debug.WriteLine("Новый пользователь: "+mbus.Name +" Sid: "+mbus.Sid.AsString);
            End If
        End If;
    End For;

    debug.WriteLine("Необходимо обновление пользователей:  "+Upd.RequireUserUpdateMessage.ToString);
End Sub updateprepare;

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

Пример Fore.NET

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

    Public Shared Sub Main(Params: StartParams);
Var
    Mb: IMetabase;
    Upd: IMetabaseUpdate;
    i: Integer;
Begin   
    MB := Params.Metabase;
    Upd := Mb.CreateUpdate();
    Upd.LoadFromFileNF("D:\""Update.pefx",UpdateLoadMode.ulmReplace);
    Upd.Prepare();
    updateprepare(Upd);
    Upd.SaveAvailable("D:\""Update.pefx");
End Sub Main;

Shared Sub updateprepare (update: IMetabaseUpdate);
    Var
    mbuss: IMetabaseUpdateAccessSubjects;
    mbus: IMetabaseUpdateAccessSubject;
    Upd: IMetabaseUpdate;   
    Begin
    Upd := update;
    mbuss := Upd.Subjects;
    For i:=0 To mbuss.Count - 1 Do
        mbus := mbuss.Item(i);
        System.Diagnostics.Debug.WriteLine("Соответствующий сид пользователя:  "+mbus.RemappingSid.AsString);
        System.Diagnostics.Debug.WriteLine("Альтернативный сид пользователя (поиск по имени, если субъект не найден по сиду):  "+mbus.AlternativeSid.AsString);
        If mbus.AlternativeSid.AsString = "" Then
            If mbus.RemappingSid.AsString <> "" Then
                System.Diagnostics.Debug.WriteLine(mbuss.FindBySidString(mbus.RemappingSid.AsString).Name);
            Else System.Diagnostics.Debug.WriteLine("Новый пользователь: "+mbus.Name +" Sid: "+mbus.Sid.AsString);
            End If
        End If;
    End For;

    debug.WriteLine("Необходимо обновление пользователей:  "+Upd.RequireUserUpdateMessage.ToString);
End Sub updateprepare;

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

См. также:

IMetabaseUpdateAccessSubject