#c# #asp.net #sensenet
#c# #asp.net #sensenet
Вопрос:
Я использую SenseNet V 6.3 Community Edition.
Я выполняю эти шаги:
-
Я установил Разрешить разрешение узла
p
пользователюxyz@xyz.com
-
Доступ к узлу
p
от пользователяxyz@xyz.com
с помощьюNode.LoadNode()
(успешно) -
Я установил пользователю запрет на доступ к узлу
p
xyz@xyz.com
-
Я установил разрешить разрешение узла
p
для группы, которая имеетxyz@xyz.com
в качестве члена -
Доступ к узлу
p
от пользователяxyz@xyz.com
с помощьюNode.LoadNode()
(Ошибка)
Я получаю Access Denied
ошибку.
Кажется, что оно не переопределяет разрешение групп над разрешением пользователей или, похоже, не переопределяет последнее разрешение.
Как я могу этого добиться?
Ответ №1:
Это специально: запретить разрешение всегда сильнее, чем разрешить. Таким образом, если вы установите явный запрет для пользователя, вы не сможете разрешить то же самое через группу. Время установки разрешений или то, является ли это группой или пользователем, не имеет значения: правило таково, что запретить переопределяет разрешить.
Вот почему работа с deny должна быть последним вариантом. Лучше удалить разрешение разрешить для пользователя, чем вы можете разрешить это через группу.
Для получения подробной информации о нарушении разрешений, локальных разрешениях и всей системе разрешений в целом, пожалуйста, посетите эту статью.
Комментарии:
1. как я могу удалить разрешить разрешение конкретного пользователя для конкретного узла c # api?
2. Привет @ miklos, я узнал, как удалить разрешение разрешить вместо разрешения запретить, спасибо за ваш ответ