Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / Нубский вопрос по правам. / 25 сообщений из 120, страница 1 из 5
16.07.2015, 14:02
    #39008872
Monochromatique
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Нубский вопрос по правам.
Чо та я не понимаю.

Есть роль "Менеджер".
У него есть доступ к функционалу "А,Б,С,Д".

Менеджер увольняется, и.... Ему присваивается роль "Уволившийся менджер".

Надо оставить ему доступ только к функционалу "Д".

И я не врубаюсь, как это сделать, стандартно.

Перечисление ролей через запятую - указывает - какие роли НЕОБХОДИМЫ для доступа.

Или я гоню???

То есть, что я должен указать у функционала "Д"?

[Authorize(Roles = "manager,fired_manager")] ???

Но тогда все пролетают. Как указать условие не "И", а "ИЛИ"??
...
Рейтинг: 0 / 0
16.07.2015, 14:13
    #39008893
мсущко
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Нубский вопрос по правам.
MonochromatiqueМенеджер увольняется, и.... Ему присваивается роль "Уволившийся менджер".

Зачем?

Если сотрудник уволился, глубоко пох какая у него роль и что он может делать. Статус сотрудника (работает, декрет, уволен и т.д.) - это атрибут, как минимум, сотрудника. Но никак не роли. Хватит курить коноплю, переходи на ландыши.
...
Рейтинг: 0 / 0
16.07.2015, 17:58
    #39009203
Monochromatique
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Нубский вопрос по правам.
мсущкоMonochromatiqueМенеджер увольняется, и.... Ему присваивается роль "Уволившийся менджер".

Зачем?

Если сотрудник уволился, глубоко пох какая у него роль и что он может делать. Статус сотрудника (работает, декрет, уволен и т.д.) - это атрибут, как минимум, сотрудника. Но никак не роли. Хватит курить коноплю, переходи на ландыши.


Это пример!!! Суть-то я объяснил?
...
Рейтинг: 0 / 0
16.07.2015, 18:22
    #39009224
Axeleron
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Нубский вопрос по правам.
Monochromatique,
А почему просто не создать отдельную роль для уволившегося менеджера и включить в нее только функционал Д? Тогда это было бы просто административное изменение, а не программное.
...
Рейтинг: 0 / 0
16.07.2015, 22:09
    #39009327
мсущко
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Нубский вопрос по правам.
MonochromatiqueЭто пример!!! Суть-то я объяснил?
Зачем давать идиотские примеры в форум? Суть обычна, уволенный человек и роль - это как булка хлеба и помойное ведро. Найди компромисс, как говорится.
...
Рейтинг: 0 / 0
16.07.2015, 22:44
    #39009345
hVostt
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Нубский вопрос по правам.
MonochromatiqueМенеджер увольняется, и.... Ему присваивается роль "Уволившийся менджер".

А если он вернулся, то "Уволившийся, но вернувшийся менеджер".
Но его опять уволили и ему присваивается роль "Уволившийся, затем вернувшийся, но потом опять уволившийся менеджер"
...
Рейтинг: 0 / 0
16.07.2015, 22:53
    #39009355
hVostt
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Нубский вопрос по правам.
MonochromatiqueНо тогда все пролетают. Как указать условие не "И", а "ИЛИ"??

Не мешай роли и логику. Атрибут Authorize в стандартном исполнении не подходит для этой цели. В простейшем случае, роль представляет собой набор утверждений (это можно, это нельзя). Но и этого мало. Ещё необходимо ограничивать доступ на уровне данных и учитывать параметры учётной записи пользователя, например, что пользователь заблокирован, или уволен. Здесь тебе стандартный механизм не поможет, надо пилить свой, под свои задачи.
...
Рейтинг: 0 / 0
17.07.2015, 08:04
    #39009436
Monochromatique
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Нубский вопрос по правам.
hVosttMonochromatiqueНо тогда все пролетают. Как указать условие не "И", а "ИЛИ"??

Не мешай роли и логику. Атрибут Authorize в стандартном исполнении не подходит для этой цели. В простейшем случае, роль представляет собой набор утверждений (это можно, это нельзя). Но и этого мало. Ещё необходимо ограничивать доступ на уровне данных и учитывать параметры учётной записи пользователя, например, что пользователь заблокирован, или уволен. Здесь тебе стандартный механизм не поможет, надо пилить свой, под свои задачи.


А почему назвали так тогда - Role? Правильней было бы - Access Rule, не?
...
Рейтинг: 0 / 0
17.07.2015, 08:08
    #39009439
Monochromatique
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Нубский вопрос по правам.
В 1С тоже есть роли.

И там они работают как-то поразумней.

Если к объекту разрешен доступ пользователям с правами "Базовая" или "Админ", то админу как-то не нужно владеть ролью "Базовая" для доступа.
...
Рейтинг: 0 / 0
17.07.2015, 08:10
    #39009440
Monochromatique
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Нубский вопрос по правам.
AxeleronMonochromatique,
А почему просто не создать отдельную роль для уволившегося менеджера и включить в нее только функционал Д? Тогда это было бы просто административное изменение, а не программное.

Как это указать в контроллере?

Перечисление ролей читается как "И", и в таком случае - нужно будет всем раздать роль "Уволившийся менеджер".
...
Рейтинг: 0 / 0
17.07.2015, 08:28
    #39009452
hVostt
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Нубский вопрос по правам.
MonochromatiqueА почему назвали так тогда - Role? Правильней было бы - Access Rule, не?

Ну в маленьких проектиках это вполне себе роль. А шаблоны и нужны для новичков со своими маленькими проектами. Если лезть дальше, надо кодить самому под задачи.
...
Рейтинг: 0 / 0
17.07.2015, 09:18
    #39009479
Алексей К
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Нубский вопрос по правам.
hVosttMonochromatiqueНо тогда все пролетают. Как указать условие не "И", а "ИЛИ"??

Не мешай роли и логику. Атрибут Authorize в стандартном исполнении не подходит для этой цели. В простейшем случае, роль представляет собой набор утверждений (это можно, это нельзя). Но и этого мало. Ещё необходимо ограничивать доступ на уровне данных и учитывать параметры учётной записи пользователя, например, что пользователь заблокирован, или уволен. Здесь тебе стандартный механизм не поможет, надо пилить свой, под свои задачи.Это всё решается на уровне провайдеров пользователей/ролей. В текущей реинкарнации MVC это можно делать в реализациях IUserStore<...> и IUserRoleStore<...>.
...
Рейтинг: 0 / 0
17.07.2015, 09:27
    #39009488
hVostt
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Нубский вопрос по правам.
Алексей КЭто всё решается на уровне провайдеров пользователей/ролей. В текущей реинкарнации MVC это можно делать в реализациях IUserStore<...> и IUserRoleStore<...>.

Не понял, как решается? Вот у записи сотрудника, который привязан к записи пользователя выставляется флаг "Уволен". Как оно должно порешаться в IUserStore? IUserStore отвечает всего лишь за то, как и где будут хранится данные, и всё. Никакой логики быть там не может и не должно.
...
Рейтинг: 0 / 0
17.07.2015, 09:37
    #39009499
Алексей К
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Нубский вопрос по правам.
hVosttАлексей КЭто всё решается на уровне провайдеров пользователей/ролей. В текущей реинкарнации MVC это можно делать в реализациях IUserStore<...> и IUserRoleStore<...>.

Не понял, как решается? Вот у записи сотрудника, который привязан к записи пользователя выставляется флаг "Уволен". Как оно должно порешаться в IUserStore?Разумное кэширование user identity data в куках + как-то так:
Код: c#
1.
2.
3.
4.
5.
6.
7.
    class AppUserStore : IUserStore<AppUser>
    {
        public Task<AppUser> FindByIdAsync(string userId)
        {
            return Db.users.Where(u => u.ID == userId && u.IsActive).FirstOrDefaultAsync();
        }
    }


hVosttIUserStore отвечает всего лишь за то, как и где будут хранится данные, и всё. Никакой логики быть там не может и не должно.Очередные заблуждения.
...
Рейтинг: 0 / 0
17.07.2015, 10:06
    #39009526
мсущка
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Нубский вопрос по правам.
hVosttMonochromatiqueМенеджер увольняется, и.... Ему присваивается роль "Уволившийся менджер".

А если он вернулся, то "Уволившийся, но вернувшийся менеджер".
Но его опять уволили и ему присваивается роль "Уволившийся, затем вернувшийся, но потом опять уволившийся менеджер"



+1

P.S. Упоротость модератора не знает границ, забанил по айпи. Но чел не в курсе, что есть анонимайзеры, который динамически меняют айпи, даже маска не спасет. А за маской-то это уже к джуджу надо на поклон идти и лить слезы))
...
Рейтинг: 0 / 0
17.07.2015, 10:13
    #39009537
Алексей К
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Нубский вопрос по правам.
мсущка P.S. Упоротость модератора не знает границ, забанил по айпи. Но чел не в курсе, что есть анонимайзеры, который динамически меняют айпи, даже маска не спасет. А за маской-то это уже к джуджу надо на поклон идти и лить слезы)) Есть ещё turbo mode в Opera . :-)
...
Рейтинг: 0 / 0
17.07.2015, 10:24
    #39009550
Monochromatique
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Нубский вопрос по правам.
hVostt
Не понял, как решается? Вот у записи сотрудника, который привязан к записи пользователя выставляется флаг "Уволен". Как оно должно порешаться в IUserStore?

Не в этом дело. И тем более не в "Уволен".

Если так критично - то увольняемому сотруднику присваиваться роль "Увольняется", убираются все другие роли, и ему остается доступ к подсистеме, с помощью которой он узнает - к кому и когда он должен подойти с обходным листком, что сдать и когда подходить за расчетом.

Для этого у него генерится соот. меню и прочее.

Я кк-то предполагал, что решать это с помощью ролей - нормально. Можно сказать - даже напрашивается.
...
Рейтинг: 0 / 0
17.07.2015, 10:28
    #39009556
Monochromatique
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Нубский вопрос по правам.
О оказывается, что роли лучше называть по именам сущностей!!!

Премило.

Роль "Список пользователей", "Создание пользователя", роль "Редактирование пользователя" и, наконец, роль "Удаление пользователя". На одну таблицу - четыре роли.

И менеджмент ролей превращается в какой-то треш.

А о том, что просится - "Менеджер, Кадровик, Админ" - забудьте.
...
Рейтинг: 0 / 0
17.07.2015, 10:31
    #39009558
Алексей К
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Нубский вопрос по правам.
MonochromatiquehVosttНе понял, как решается? Вот у записи сотрудника, который привязан к записи пользователя выставляется флаг "Уволен". Как оно должно порешаться в IUserStore?

Не в этом дело. И тем более не в "Уволен".

Если так критично - то увольняемому сотруднику присваиваться роль "Увольняется", убираются все другие роли, и ему остается доступ к подсистеме, с помощью которой он узнает - к кому и когда он должен подойти с обходным листком, что сдать и когда подходить за расчетом.

Для этого у него генерится соот. меню и прочее.

Я кк-то предполагал, что решать это с помощью ролей - нормально. Можно сказать - даже напрашивается.Вычисляй роли на уровне IUserRoleStore. В чём проблема?
MonochromatiqueО оказывается, что роли лучше называть по именам сущностей!!!

Премило.

Роль "Список пользователей", "Создание пользователя", роль "Редактирование пользователя" и, наконец, роль "Удаление пользователя". На одну таблицу - четыре роли.

И менеджмент ролей превращается в какой-то треш.

А о том, что просится - "Менеджер, Кадровик, Админ" - забудьте.Сделай дерево ролей.
...
Рейтинг: 0 / 0
17.07.2015, 10:32
    #39009561
мсущко
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Нубский вопрос по правам.
Алексей КРазумное кэширование user identity data в куках + как-то так
Никаких кеширований, ты чего. Не нужно ничего никуда прокидывать. Делается свой провайдер, к примеру System.Web.Security.RoleProvider, в котором и находится вся логика (получить текущий HttpContext.Current.User.Identity, смапить с эмплоём из базы, анализ ролей, анализ состояния сотрудника, звезды на небе, да всё что угодно).
...
Рейтинг: 0 / 0
17.07.2015, 10:33
    #39009562
Изопропил
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Нубский вопрос по правам.
Monochromatique,

штатная конструкция годится только для хелловорда, как уже заметили 17902730
...
Рейтинг: 0 / 0
17.07.2015, 10:34
    #39009564
Monochromatique
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Нубский вопрос по правам.
Алексей КВычисляй роли на уровне IUserRoleStore. В чём проблема?

Да ни в чем, собственно.

Можно и собмтвенные css-фреймворки писать и прочие велосипеды.

Я надеялся, что человеческое управление ролями как-то уже в коробке.
...
Рейтинг: 0 / 0
17.07.2015, 10:38
    #39009571
Изопропил
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Нубский вопрос по правам.
MonochromatiqueЯ надеялся, что человеческое управление ролями как-то уже в коробке.
оно из коробки - человеческое, но только для хелловорда
...
Рейтинг: 0 / 0
17.07.2015, 10:40
    #39009572
Алексей К
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Нубский вопрос по правам.
MonochromatiqueАлексей КВычисляй роли на уровне IUserRoleStore. В чём проблема?

Да ни в чем, собственно.

Можно и собмтвенные css-фреймворки писать и прочие велосипеды.

Я надеялся, что человеческое управление ролями как-то уже в коробке.У тебя два варианта:
1. Натянуть существующую ролевую модель безопасности на свои потребности.
2. Реализовать всё самостоятельно.

По твоему описанию всё прекрасно натягивается, писать с нуля смысла не вижу.
...
Рейтинг: 0 / 0
17.07.2015, 10:47
    #39009580
Изопропил
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Нубский вопрос по правам.
Алексей Квсё прекрасно натягивается
как натянуть сову на глобус?
...
Рейтинг: 0 / 0
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / Нубский вопрос по правам. / 25 сообщений из 120, страница 1 из 5
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]