SubjectGranted(Subject: ISecuritySubject): Boolean;
SubjectGranted(Prognoz.Platform.Interop.Metabase.ISecuritySubject): System.Boolean;
Subject. Субъект безопасности.
Метод SubjectGranted возвращает признак наличия данной привилегии у субъекта безопасности, передаваемого посредством параметра Subject.
Метод возвращает значение True, если субъект безопасности обладает данной привилегией, и False если не обладает.
Для выполнения примера убедитесь, что в менеджере безопасности содержится пользователь USER.
Добавьте ссылку на системную сборку Metabase.
Sub UserProc;
Var
MB: IMetabase;
MS: IMetabaseSecurity;
MP: IMetabasePolicy;
Priv: IPrivilege;
Subject: ISecuritySubject;
Begin
MB := MetabaseClass.Active;
MS := MB.Security;
MP := MS.Policy;
Priv := MP.Privilege("ЧТЕНИЕ");
Subject := MB.Security.ResolveName("USER");
If Priv.SubjectGranted(Subject) Then
Debug.WriteLine("Пользователь обладает привилегией на чтение и открытие объектов");
Else
Debug.WriteLine("Пользователь не обладает привилегией на чтение и открытие объектов");
End If;
End Sub UserProc;
Imports Prognoz.Platform.Interop.Metabase;
…
Public Shared Sub Main(Params: StartParams);
Var
MB: IMetabase;
MS: IMetabaseSecurity;
MP: IMetabasePolicy;
Priv: IPrivilege;
Subject: ISecuritySubject;
Begin
MB := Params.Metabase;
MS := MB.Security;
MP := MS.Policy;
Priv := MP.Privilege["ЧТЕНИЕ"];
Subject := MB.Security.ResolveName("USER");
If Priv.SubjectGranted(Subject) Then
System.Diagnostics.Debug.WriteLine("Пользователь обладает привилегией на чтение и открытие объектов");
Else
System.Diagnostics.Debug.WriteLine("Пользователь не обладает привилегией на чтение и открытие объектов");
End If;
End Sub;
После выполнения примера в консоль среды разработки будет выведено сообщение о наличие привилегии на чтение и открытие объектов у пользователя USER.
См. также: