Для изменения размера нажмите или перетащите

ISecurityService - интерфейс

Интерфейс проверки привилегий пользователя

Пространство имён:  EleWise.ELMA.Security
Сборка:  EleWise.ELMA.SDK (в EleWise.ELMA.SDK.dll) Версия: 1.0.0.0
Синтаксис
C#
public interface ISecurityService

Тип ISecurityService предоставляет следующие члены.

Методы
  ИмяОписание
Открытый методCanCheckPermission(Permission, Object)
Проверить возможность запроса привилегии для объекта
Открытый методCanCheckPermission(Permission, Type)
Проверить возможность запроса привилегии для типа
Открытый методGetUsersByPermissions
Получить пользователей обладающие привилегиями
Открытый методHasPermission(Permission)
Проверить обладание привелегей текущего пользователя
Открытый методHasPermission(IUser, Permission)
Проверить обладание привелегей пользователя
Открытый методHasPermission(IUser, Permission, IPermissionTarget)
Проверить обладание привилегией пользователя относительно экземпляра объекта
Открытый методHasPermission(IUser, Permission, Type)
Проверить обладание привилегией пользователя относительно типа
Открытый методHasPermission(Permission, Object, Boolean)
Проверить обладание привилегией текущего пользователя относительно экземпляра объекта Например, право "редактировать документ" или право "закрыть задачу".
Открытый методHasPermission(Permission, Type, Boolean)
Проверить обладание привилегией текущего пользователя относительно типа
Открытый методHasPermission(IUser, Permission, Object, Boolean)
Проверить обладание привилегией пользователя относительно экземпляра объекта Например, право "редактировать документ" или право "закрыть задачу".
Открытый методHasPermission(IUser, Permission, Type, Boolean)
Проверить обладание привилегией пользователя относительно типа
Открытый методHasPermission(IUser, Permission, Type, PropertyInfo)
Проверить обладание привилегией пользователя относительно поля типа
Открытый методRunBySystemUser
Запустить код от имени системного пользователя с повышенными привилегиями. Внутри производится авторизация под системным пользователем и вызывается метод RunWithElevatedPrivilegies.
Открытый методRunByUser
Запустить от имени пользователя
Открытый методПример кодаRunWithElevatedPrivilegies
Запустить код с повышенными привилегиями. Сделует использовать для загрузки данныз из БД без фильтрации по привилегиям (методы IEntityManager.Load и IEntityManager.Find).
Открытый методRunWithElevatedPrivilegiesAndWithDeleted
Запуск без фильтрации по пермишеннам и удалению
Открытый методRunWithUsualPrivilegies
Запустить с обычными привилегиями
В начало страницы
Примеры
//С помощью данного сервиса можно проверять на наличие привилегий у пользователей и запускать какие-либо
//действия от лица определённого пользователя с ограниченными или полными правами

//запишем сервис в переменную, чтобы с ним легче было работать
var service = Locator.GetServiceNotNull<ISecurityService>();

//Чтобы проверить наличие привилегий, используйте следующие функции:
//1.HasPermission(user, permission) - проверить наличие привилегии у определённого пользователя
var hasPermission = service.HasPermission(user, permission);

//2.HasPermission(permission) - проверить наличие привилегии у текущего пользователя
var hasPermission = service.HasPermission(permission);

//3.HasPermission(user, permission, permissionSubject, skipAdmin) - проверить наличие привилегии у пользователя относительно экземпляра объекта
var hasPermission = service.HasPermission(user, permission, permissionSubject, skipAdmin);

//4.HasPermission(permission, target, skipAdmin) - проверить наличие привилегии у текущего пользователя относительно экземпляра объекта
var hasPermission = service.HasPermission(permission, target, skipAdmin);

//Чтобы проверить возможность проверки на наличие привилегии, используйте функцию CanCheckPermission(permission, target)
var canCheck = service.CanCheckPermission(permission, target);

//Чтобы запустить код с теми или иными привилегиями используйте следующие функции:
//1.RunWithElevatedPrivilegies(action) - запустить код с повышенными привилегиями.
service.RunWithElevatedPrivilegies(() => 
    {
            Console.WriteLine("Это работает!");
    });

//2.RunWithElevatedPrivilegiesAndWithDeleted(action) - запустить без фильтрации по пермишеннам и удалению
service.RunWithElevatedPrivilegiesAndWithDeleted(() => 
    {
            Console.WriteLine("Это работает!");
    });

//3.RunWithUsualPrivilegies(action) - запустить с обычными привилегиями
service.RunWithUsualPrivilegies(() => 
    {
            Console.WriteLine("Это работает!");
    });

//Чтобы запустить код от лица какого-либо пользователя используйте следующие функции:
//1.RunBySystemUser(action) - запустить код от имени системного пользователя с повышенными привилегиями.
service.RunBySystemUser(() => 
    {
            Console.WriteLine("Это работает!");
    });

//2.RunByUser(user, action) - запустить код от имени пользователя
service.RunByUser(user, () => 
    {
            Console.WriteLine("Это работает!");
    });
См. также