Как переопределить разрешение групп над разрешением пользователей в SenseNet?

#c# #asp.net #sensenet

#c# #asp.net #sensenet

Вопрос:

Я использую SenseNet V 6.3 Community Edition.

Я выполняю эти шаги:

  1. Я установил Разрешить разрешение узла p пользователю xyz@xyz.com

  2. Доступ к узлу p от пользователя xyz@xyz.com с помощью Node.LoadNode() (успешно)

  3. Я установил пользователю запрет на доступ к узлу p xyz@xyz.com

  4. Я установил разрешить разрешение узла p для группы, которая имеет xyz@xyz.com в качестве члена

  5. Доступ к узлу p от пользователя xyz@xyz.com с помощью Node.LoadNode() (Ошибка)

Я получаю Access Denied ошибку.

Кажется, что оно не переопределяет разрешение групп над разрешением пользователей или, похоже, не переопределяет последнее разрешение.

Как я могу этого добиться?

Ответ №1:

Это специально: запретить разрешение всегда сильнее, чем разрешить. Таким образом, если вы установите явный запрет для пользователя, вы не сможете разрешить то же самое через группу. Время установки разрешений или то, является ли это группой или пользователем, не имеет значения: правило таково, что запретить переопределяет разрешить.

Вот почему работа с deny должна быть последним вариантом. Лучше удалить разрешение разрешить для пользователя, чем вы можете разрешить это через группу.

Для получения подробной информации о нарушении разрешений, локальных разрешениях и всей системе разрешений в целом, пожалуйста, посетите эту статью.

Комментарии:

1. как я могу удалить разрешить разрешение конкретного пользователя для конкретного узла c # api?

2. Привет @ miklos, я узнал, как удалить разрешение разрешить вместо разрешения запретить, спасибо за ваш ответ