Иногда возникает необходимость ограничить доступ некоторым пользователям или пользователям с определенной ролью к определенным классам (редактирование, создание новых объектов/удалять/просматривать список). Для этого необходимо настроить полномочия для пользователей/ролей пользователей.

Создать роль, для которой будут произведены соответствующие настройки (например, отключена возможность удаления объектов из списка для определенного класса), можно двумя способами:

  • в разделе “Администрирование\Роли” в приложении;
  • с помощью Security Console.

Список пользователей создается на основе БД полномочий.

Полномочия настраиваются в разделе “Классы” на форме редактирования роли или пользователя. Например, есть 4 класса. Один не доступен для чтения, второй - для редактирования, третий - для создания новых объектов, четвертый - для удаления. Настройка полномочий будет выглядеть следующим образом:

Создание полномочий на классы при аутентификации на основе форм

Для настройки полномочий следует добавить пользователя(ей) в разделе “Администрирование\Пользователи” в приложении (если пользователей ограниченное количество и список не построен на основе БД полномочий). Далее следует выполнить одно из действий:

  • присвоить пользователю роль с ограниченными полномочиями;
  • ограничить полномочия на форме редактирования пользователя.

Создание полномочий на классы при windows-аутентификации

Для того чтобы ограничить полномочия пользователей в web-приложении с windows-аутентификацей следует:

<configuration>
	<appSettings>
		<add key="DefaultRoles" value="Tester"/>
		<!--...-->
	</appSettings>
	<!--...-->
</configuration>
protected void Page_Load(object sender, EventArgs e)
{
	//...
	ApplyTreeViewCookie();
	// При выполнении метода CreateDbUser в БД будут добавлены следующие объекты:
        // 1. Пользователь с привязкой к домену и к ролям, заданным по умолчанию. 
        // 2. Домен пользователя, если ранее он отсутствовал в системе полномочий.
        if (AuthenticationAdapter.GetDbUser(Context.User.Identity.Name) == null)
        {
            AuthenticationAdapter.CreateDbUser(Context.User.Identity.Name);
        }
	//...
	fio.Text = Context.User.Identity.Name;
	//...
}