powered by simpleCommunicator - 2.0.59     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / Нубский вопрос по правам.
120 сообщений из 120, показаны все 5 страниц
Нубский вопрос по правам.
    #39008872
Monochromatique
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Чо та я не понимаю.

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

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

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

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

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

Или я гоню???

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

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

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

Зачем?

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

Зачем?

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


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

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

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

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


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

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

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

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

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

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

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

Не понял, как решается? Вот у записи сотрудника, который привязан к записи пользователя выставляется флаг "Уволен". Как оно должно порешаться в IUserStore? IUserStore отвечает всего лишь за то, как и где будут хранится данные, и всё. Никакой логики быть там не может и не должно.
...
Рейтинг: 0 / 0
Нубский вопрос по правам.
    #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
Нубский вопрос по правам.
    #39009526
мсущка
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
hVosttMonochromatiqueМенеджер увольняется, и.... Ему присваивается роль "Уволившийся менджер".

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



+1

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

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

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

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

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

Премило.

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

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

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

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

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

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

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

Премило.

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

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

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

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

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

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

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

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

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

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

По твоему описанию всё прекрасно натягивается, писать с нуля смысла не вижу.
...
Рейтинг: 0 / 0
Нубский вопрос по правам.
    #39009580
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей Квсё прекрасно натягивается
как натянуть сову на глобус?
...
Рейтинг: 0 / 0
Нубский вопрос по правам.
    #39009582
Merdoc
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Monochromatique,
Мне кажется вы мыслите уровнем 1С. Но и там тоже есть доступы к отдельным функциям редактирование справочника, создание нового документа и т.п. И роли, которые эти функции включают.
Если хотите сделать это на ASP - кто мешает то?
Просто тут нет готовых функций, и каждую из них вам придется писать самостоятельно.
...
Рейтинг: 0 / 0
Нубский вопрос по правам.
    #39009585
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Merdocмыслите уровнем 1С
а что в этом плохого?
вполне разумная модель
...
Рейтинг: 0 / 0
Нубский вопрос по правам.
    #39009591
Merdoc
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Изопропил,
1С готовое решение, в котором (особенно в 8ке) в программинг можно не лезть.
Остальные языки в большинстве своем подразумевают какую то работу руками
...
Рейтинг: 0 / 0
Нубский вопрос по правам.
    #39009603
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ИзопропилАлексей Квсё прекрасно натягивается
как натянуть сову на глобус?Ну если стоит задача получить глобус в сове, то да.
...
Рейтинг: 0 / 0
Нубский вопрос по правам.
    #39009608
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Merdoc,

ну не языки, а фреймворки - так корректнее будет
...
Рейтинг: 0 / 0
Нубский вопрос по правам.
    #39009634
мсущко
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Какие могут быть проблемы реализовать вот этот класс?


Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
public abstract class RoleProvider : ProviderBase
{     
        public abstract string ApplicationName { get; set; }
 
        public abstract void AddUsersToRoles(string[] usernames, string[] roleNames);
       
        public abstract void CreateRole(string roleName);
        
        public abstract bool DeleteRole(string roleName, bool throwOnPopulatedRole);
        
        public abstract string[] FindUsersInRole(string roleName, string usernameToMatch);
       
        public abstract string[] GetAllRoles();
       
        public abstract string[] GetRolesForUser(string username);
        
        public abstract string[] GetUsersInRole(string roleName);
       
        public abstract bool IsUserInRole(string username, string roleName);
        
        public abstract void RemoveUsersFromRoles(string[] usernames, string[] roleNames);
       
        public abstract bool RoleExists(string roleName);
}
...
Рейтинг: 0 / 0
Нубский вопрос по правам.
    #39009636
мсущко
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Алексей Кмсущка P.S. Упоротость модератора не знает границ, забанил по айпи. Но чел не в курсе, что есть анонимайзеры, который динамически меняют айпи, даже маска не спасет. А за маской-то это уже к джуджу надо на поклон идти и лить слезы)) Есть ещё turbo mode в Opera . :-)
Подробнее? :)
...
Рейтинг: 0 / 0
Нубский вопрос по правам.
    #39009643
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
мсущкоКакие могут быть проблемы реализовать вот этот класс?
проблема - отделить роли от пермишнов,
термины - например, здесь - http://shiro.apache.org/terminology.html
...
Рейтинг: 0 / 0
Нубский вопрос по правам.
    #39009649
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
мсущкоАлексей Кпропущено...
Есть ещё turbo mode в Opera . :-)
Подробнее? :)Ну включай "турбо" и заходи люда без левых анонимайзеров.
...
Рейтинг: 0 / 0
Нубский вопрос по правам.
    #39009658
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ИзопропилмсущкоКакие могут быть проблемы реализовать вот этот класс?
проблема - отделить роли от пермишнов,
термины - например, здесь - http://shiro.apache.org/terminology.html Любите вы всё усложнять.

Решение я уже предложил, мсущко предложил аналогичное. hVostt , как обычно, против. Всё, задача решена, тема закрыта, расходимся...
...
Рейтинг: 0 / 0
Нубский вопрос по правам.
    #39009660
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MonochromatiqueО оказывается, что роли лучше называть по именам сущностей!!!

Премило.

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

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

А о том, что просится - "Менеджер, Кадровик, Админ" - забудьте.

Наконец-то дошло! )))
...
Рейтинг: 0 / 0
Нубский вопрос по правам.
    #39009661
мсущко
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ИзопропилмсущкоКакие могут быть проблемы реализовать вот этот класс?
проблема - отделить роли от пермишнов,
термины - например, здесь - http://shiro.apache.org/terminology.html
Никаких проблем:

Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
public class MyRoleProvider : RoleProvider
{
    public CurrentUser GetEmployee()
    {
        var identity = HttpContext.Current.User.Identity as WindowsIdentity;
        return GetUser(identity);
    }

    ...
}



Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
public class CurrentUser
{
    public Employee Employee { get; set; }

    public bool IsAdmin
    {
        get
        {
            return Employee.Roles ... (int)Roles.Administrator;
        }
    }

    public bool CanRequestCreate()
    {
        // логика
    }
}



Где-то через IoC...

Код: c#
1.
bool canRequestCreate = ((MyRoleProvider)Roles.Provider).GetUser().CanRequestCreate();
...
Рейтинг: 0 / 0
Нубский вопрос по правам.
    #39009662
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
мсущкоКакие могут быть проблемы реализовать вот этот класс?

Не показывай больше код из эпохи мезозоя )))
ЩАс так уже не пишут нифига, и выглядит отстойно.
...
Рейтинг: 0 / 0
Нубский вопрос по правам.
    #39009670
мсущко
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
hVosttмсущкоКакие могут быть проблемы реализовать вот этот класс?
Не показывай больше код из эпохи мезозоя )))
ЩАс так уже не пишут нифига, и выглядит отстойно.
Предложи вариант, как сейчас модно писать?
...
Рейтинг: 0 / 0
Нубский вопрос по правам.
    #39009676
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
мсущкоhVosttпропущено...

Не показывай больше код из эпохи мезозоя )))
ЩАс так уже не пишут нифига, и выглядит отстойно.
Предложи вариант, как сейчас модно писать? Там
...
Рейтинг: 0 / 0
Нубский вопрос по правам.
    #39009678
мсущко
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Алексей Кмсущкопропущено...
Подробнее? :)Ну включай "турбо" и заходи люда без левых анонимайзеров.
Круто :)

P.S. Кидай свой скайп мне в feedback, отправлю смайлик "спасибо" :)
...
Рейтинг: 0 / 0
Нубский вопрос по правам.
    #39009687
мсущко
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Алексей Кмсущкопропущено...

Предложи вариант, как сейчас модно писать? Там
Это не отменяет необходимость писать свой провайдер.

http://codearticles.ru/articles/2452
http://codearticles.ru/articles/2451

P.S. Упоротый модер начал войну с анонимайзерами
...
Рейтинг: 0 / 0
Нубский вопрос по правам.
    #39009689
мсущко
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Серж, вот объясни, почему ты такой му**к по жизни? Или тебе твоя уропия вообще голову оторвала?
...
Рейтинг: 0 / 0
Нубский вопрос по правам.
    #39009698
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
мсущкоАлексей Кпропущено...
Там
Это не отменяет необходимость писать свой провайдер.

http://codearticles.ru/articles/2452
http://codearticles.ru/articles/2451

P.S. Упоротый модер начал войну с анонимайзерами В нынешней реинкарнации MVC это будет хранилище для существующего провайдера:
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
    class AppUserStore : IUserRoleStore<AppUser>
    {
        public async Task<IList<string>> GetRolesAsync(AppUser user)
        {
            if (user.IsRetired== false)
                 return new[] { "retiredPerson" };
 
            return await UserRolesService.GetUserInheritedRolesByUserID(user.ID.Value)
                .Select(r => r.RoleName)
                .ToArrayAsync();
        }        
    }
...
Рейтинг: 0 / 0
Нубский вопрос по правам.
    #39009701
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
мсущко,

как всёж насчёт различий между ролями и пермишнами?
...
Рейтинг: 0 / 0
Нубский вопрос по правам.
    #39009704
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Изопропилмсущко,

как всёж насчёт различий между ролями и пермишнами?Связь между "роль" и "пермишн" устанавливается например с помощью AuthorizeAttribute.
...
Рейтинг: 0 / 0
Нубский вопрос по правам.
    #39009706
мсущко
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Алексей КВ нынешней реинкарнации MVC это будет хранилище для существующего провайдера
Какая разница, как ходить в базу? :)

Изопропилмсущко, как всёж насчёт различий между ролями и пермишнами?
Роли ролями, пермиссии пермиссиями. В чем проблема-то?

Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
public class CurrentUser
{
    public bool IsAdmin // роль
    {
        get
        {
            return Employee.Roles ... (int)Roles.Administrator;
        }
    }

    public bool CanRequestCreate() // пермиссия
    {
        // логика
    }
}



P.S. Более красиво можно вынести безопасность в отдельный ISecurityService, где подается в конструктор CurrentUser. Но это уже отдельная тема.
...
Рейтинг: 0 / 0
Нубский вопрос по правам.
    #39009710
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
мсущкоВ чем проблема-то?Вместо декларативного указания методам ролей с помощью атрибутов придётся в прикладном коде добывать RoleProvider и явно проверять значение свойства IsAdmin.
...
Рейтинг: 0 / 0
Нубский вопрос по правам.
    #39009711
Monochromatique
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей КмсущкоВ чем проблема-то?Вместо декларативного указания методам ролей с помощью атрибутов придётся в прикладном коде добывать RoleProvider и явно проверять значение свойства IsAdmin.

Так еще и свои авторизешн атрибуты придется написать.
...
Рейтинг: 0 / 0
Нубский вопрос по правам.
    #39009713
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
CurrentUser какого хрена вообще что-то знает о CanRequestCreate() ?
...
Рейтинг: 0 / 0
Нубский вопрос по правам.
    #39009718
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MonochromatiqueАлексей Кпропущено...
Вместо декларативного указания методам ролей с помощью атрибутов придётся в прикладном коде добывать RoleProvider и явно проверять значение свойства IsAdmin.

Так еще и свои авторизешн атрибуты придется написать.Нет, не придётся.

Но можно на замену стандартного IUserRoleStore , если есть желание.
...
Рейтинг: 0 / 0
Нубский вопрос по правам.
    #39009719
мсущка
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Алексей КмсущкоВ чем проблема-то?Вместо декларативного указания методам ролей с помощью атрибутов придётся в прикладном коде добывать RoleProvider и явно проверять значение свойства IsAdmin.
Зачем добывать? Про IoC слыхал? Сделал сервис и юзай его через инверсию.
...
Рейтинг: 0 / 0
Нубский вопрос по правам.
    #39009722
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
мсущкаАлексей Кпропущено...
Вместо декларативного указания методам ролей с помощью атрибутов придётся в прикладном коде добывать RoleProvider и явно проверять значение свойства IsAdmin.
Зачем добывать? Про IoC слыхал? Сделал сервис и юзай его через инверсию.Если речь идёт о системе безопасности - лучше повесить атрибут на метод.

В противном случае задачу лучше решать отдельно от системы безопасности, как часть остальной прикладной логики.
...
Рейтинг: 0 / 0
Нубский вопрос по правам.
    #39009728
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей Кмсущкопропущено...

Предложи вариант, как сейчас модно писать? Там

Я-Я! Натюрлихъ, богомерзкие RoleProvider более неугодны мыйкрысофту и должны быть низвергнуты. Ну и подбный стиль писанины тоже. Кухня какая-то, и котлеты жарят, и детей зачинают, и псалмы читают в одном классе. Колхоз ))
...
Рейтинг: 0 / 0
Нубский вопрос по правам.
    #39009731
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
http://shiro.apache.org/authorization.html#Authorization-PermissionBasedAuthorization

Код: java
1.
2.
3.
4.
5.
6.
7.
Subject currentUser = SecurityUtils.getSubject();
Permission p = new WildcardPermission("printer:print:laserjet4400n");
if (currentUser.isPermitted(p) {
    //show the Print button
} else {
    //don't show the button?  Grey it out?
}


currentUser в себе никакой логики не содержит
...
Рейтинг: 0 / 0
Нубский вопрос по правам.
    #39009733
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
мсущкоЭто не отменяет необходимость писать свой провайдер.

http://codearticles.ru/articles/2452
http://codearticles.ru/articles/2451

Ничё не надо писать, какой ещё провайдер? Пишешь простую стору, а вообще клеймы рулят!
...
Рейтинг: 0 / 0
Нубский вопрос по правам.
    #39009734
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVosttАлексей Кпропущено...
Там

Я-Я! Натюрлихъ, богомерзкие RoleProvider более неугодны мыйкрысофту и должны быть низвергнуты. Ну и подбный стиль писанины тоже. Кухня какая-то, и котлеты жарят, и детей зачинают, и псалмы читают в одном классе. Колхоз ))Радоваться пока нечему. Новые IUserXXXStore ничем не лучше.

Накой системе безопасности методы CreateUser, DeleteUser и т. п.? Чтобы там все ставили NotImplementedException?
...
Рейтинг: 0 / 0
Нубский вопрос по правам.
    #39009736
мсущко
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Алексей Кмсущкапропущено...

Зачем добывать? Про IoC слыхал? Сделал сервис и юзай его через инверсию.Если речь идёт о системе безопасности - лучше повесить атрибут на метод.

В противном случае задачу лучше решать отдельно от системы безопасности, как часть остальной прикладной логики.
Вешай атрибут, провайдер ролей отлично с ним дружит. Даже не нужно переписывать атрибут.
...
Рейтинг: 0 / 0
Нубский вопрос по правам.
    #39009737
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей КВ нынешней реинкарнации MVC это будет хранилище для существующего провайдера:
Код: c#
1.
2.
3.
4.
5.
6.
    class AppUserStore : IUserRoleStore<AppUser>
    {
        public async Task<IList<string>> GetRolesAsync(AppUser user)
        {
            if (user.IsRetired== false)
                 return new[] { "retiredPerson" };



Ты зачем логику сюда пихаешь?? Айяяйяй, нехорошо!!
...
Рейтинг: 0 / 0
Нубский вопрос по правам.
    #39009738
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVosttЯ-Я! Натюрлихъ, богомерзкие RoleProvider более неугодны мыйкрысофту и должны быть низвергнуты. Ну и подбный стиль писанины тоже. Кухня какая-то, и котлеты жарят, и детей зачинают, и псалмы читают в одном классе. Колхоз ))

ну не натягивается сова на глобус - как ни крути
...
Рейтинг: 0 / 0
Нубский вопрос по правам.
    #39009742
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Изопропилмсущко,

как всёж насчёт различий между ролями и пермишнами?

роль обинияет набор клеймов. а пермишины, это как-то деревянно.
...
Рейтинг: 0 / 0
Нубский вопрос по правам.
    #39009744
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
мсущкоРоли ролями, пермиссии пермиссиями. В чем проблема-то?

Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
public class CurrentUser
{
    public bool IsAdmin // роль
    {
        get
        {
            return Employee.Roles ... (int)Roles.Administrator;
        }
    }

    public bool CanRequestCreate() // пермиссия
    {
        // логика
    }
}



Вот же ты любитель макаронного кода...
...
Рейтинг: 0 / 0
Нубский вопрос по правам.
    #39009747
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ИзопропилCurrentUser какого хрена вообще что-то знает о CanRequestCreate() ?

да, это странно по меньшей мере. хотя не.. просто тупо )
...
Рейтинг: 0 / 0
Нубский вопрос по правам.
    #39009748
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVosttАлексей КВ нынешней реинкарнации MVC это будет хранилище для существующего провайдера:
Код: c#
1.
2.
3.
4.
5.
6.
    class AppUserStore : IUserRoleStore<AppUser>
    {
        public async Task<IList<string>> GetRolesAsync(AppUser user)
        {
            if (user.IsRetired== false)
                 return new[] { "retiredPerson" };



Ты зачем логику сюда пихаешь?? Айяяйяй, нехорошо!! Сам так никогда не делал, но ничего плохого в этом не вижу. Что поделать, если постановка задачи такая?
...
Рейтинг: 0 / 0
Нубский вопрос по правам.
    #39009749
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
мсущкаЗачем добывать? Про IoC слыхал? Сделал сервис и юзай его через инверсию.

ты путаешь коз с лунным удобрением. человек хочет декларативно. при чём тут IoC?

или ты хотел сказать AOP? )
...
Рейтинг: 0 / 0
Нубский вопрос по правам.
    #39009751
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей КНакой системе безопасности методы CreateUser, DeleteUser и т. п.? Чтобы там все ставили NotImplementedException?

ты билин не улавливаешь сути. это репозиторий. хранилище, это не логика, а всего лишь достать/положить.
...
Рейтинг: 0 / 0
Нубский вопрос по правам.
    #39009752
мсущко
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Алексей К, смотри http://codearticles.ru/articles/2485
Атрибуты не панацея. Часто нужно анализировать роли и пермиссии в прикладной логике. И атрибуты идут лесом. Что скажешь?
...
Рейтинг: 0 / 0
Нубский вопрос по правам.
    #39009754
мсущка
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
hVosttмсущкоРоли ролями, пермиссии пермиссиями. В чем проблема-то?

Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
public class CurrentUser
{
    public bool IsAdmin // роль
    {
        get
        {
            return Employee.Roles ... (int)Roles.Administrator;
        }
    }

    public bool CanRequestCreate() // пермиссия
    {
        // логика
    }
}



Вот же ты любитель макаронного кода...
Ты не ответил на мой вопрос. Где альтернатива?
...
Рейтинг: 0 / 0
Нубский вопрос по правам.
    #39009757
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
мсущкоАлексей К, смотри http://codearticles.ru/articles/2485
Атрибуты не панацея. Часто нужно анализировать роли и пермиссии в прикладной логике. И атрибуты идут лесом. Что скажешь?

логика в базовых атрибутах безопасности -- тропинка в ад. прямо туда.
...
Рейтинг: 0 / 0
Нубский вопрос по правам.
    #39009758
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
мсущкаТы не ответил на мой вопрос. Где альтернатива?

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

атрибуты свои надо написать конечно, стандартный Authorize на помойку.
...
Рейтинг: 0 / 0
Нубский вопрос по правам.
    #39009760
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей КСам так никогда не делал, но ничего плохого в этом не вижу. Что поделать, если постановка задачи такая?

ну пусть такая, зачем её в репозитории-то решать? там вообще-то менеджер есть для этих целей. там и твори добро )
...
Рейтинг: 0 / 0
Нубский вопрос по правам.
    #39009768
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVosttмсущкаТы не ответил на мой вопрос. Где альтернатива?

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

атрибуты свои надо написать конечно, стандартный Authorize на помойку.

permission - термин конкретной явской библиотеки
...
Рейтинг: 0 / 0
Нубский вопрос по правам.
    #39009779
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVosttАлексей КСам так никогда не делал, но ничего плохого в этом не вижу. Что поделать, если постановка задачи такая?

ну пусть такая, зачем её в репозитории-то решать? там вообще-то менеджер есть для этих целей. там и твори добро )UserManager<TUser>? Показывай, где там.
...
Рейтинг: 0 / 0
Нубский вопрос по правам.
    #39009792
мсущко
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Хвост, третий раз повторяю :) Где ответы, где код?
...
Рейтинг: 0 / 0
Нубский вопрос по правам.
    #39009796
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVosttАлексей КСам так никогда не делал, но ничего плохого в этом не вижу. Что поделать, если постановка задачи такая?

ну пусть такая, зачем её в репозитории-то решать? там вообще-то менеджер есть для этих целей. там и твори добро )Ну вижу, есть там public virtual Task<IList<string>> GetRolesAsync(TKey userId);

Да и пофиг. Принципиальной разницы нет, куда вставлять эту логику.
...
Рейтинг: 0 / 0
Нубский вопрос по правам.
    #39009809
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей КUserManager<TUser>? Показывай, где там.

GetRolesAsync
IsInRoleAsync

вот
...
Рейтинг: 0 / 0
Нубский вопрос по правам.
    #39009813
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
мсущкоХвост, третий раз повторяю :) Где ответы, где код?

ну вот тебе код

Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
public OnLoginSucces(yuser) {
   var claimas = SecurityService.ComputeClaims(yuser);
   SecurityCache.AddClaims(yuser, claimus);
}

///

[AuthClaims("/share/images/*", "/documents/edit", "has:Money")]
ActionResult Aliluya()
{
   ....
}
...
Рейтинг: 0 / 0
Нубский вопрос по правам.
    #39009819
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей КНу вижу, есть там public virtual Task<IList<string>> GetRolesAsync(TKey userId);

Да и пофиг. Принципиальной разницы нет, куда вставлять эту логику.

Тогда вставляй её прям в контроллер, ASP/Identity на помойку, так как using(new DbContext) продолжает рулить неподетски!
...
Рейтинг: 0 / 0
Нубский вопрос по правам.
    #39009825
мсущко
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
hVosttмсущкоХвост, третий раз повторяю :) Где ответы, где код?

ну вот тебе код

Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
public OnLoginSucces(yuser) {
   var claimas = SecurityService.ComputeClaims(yuser);
   SecurityCache.AddClaims(yuser, claimus);
}

///

[AuthClaims("/share/images/*", "/documents/edit", "has:Money")]
ActionResult Aliluya()
{
   ....
}


Что это за кал? Как мне анализировать пермиссии в теле метода контроллера?
...
Рейтинг: 0 / 0
Нубский вопрос по правам.
    #39009829
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
мсущкоЧто это за кал? Как мне анализировать пермиссии в теле метода контроллера?

ну также^

Код: c#
1.
2.
3.
4.
5.
6.
var allow = SecurityCache.Satisfy("/tvoya/permissiya", "nu:ili:secutity:object", "nu_ili_chtoto");
if(!allow) {

    return Forbidden("sorry, bro");

}
...
Рейтинг: 0 / 0
Нубский вопрос по правам.
    #39009832
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
мсущко,

или один из:

SecurityCache.SatisfyOne("../.", "dsfsdf", "sdfsd");

или сложное условие

SecurityCache.SatisfyQuery(p => (p.Is("asdasd") && p.Is("asas/asdas")) || p.Not("asdaaaa"));

а кал, это унылая примитивная лапша, которую ты придлагаешь с перегрузкой RoleProvider... студенческие поделки мне неинтересны ))
...
Рейтинг: 0 / 0
Нубский вопрос по правам.
    #39009839
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVostt
Код: c#
1.
SecurityCache


какой такой кэш?
а эти кишки пошто наружу торчат?
...
Рейтинг: 0 / 0
Нубский вопрос по правам.
    #39009848
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Изопропилкакой такой кэш?
а эти кишки пошто наружу торчат?

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

например, если пользователь создавал договора, то ему открывается фантастическая кнопка и прочее гумно, которое можно лопатой накидать.
...
Рейтинг: 0 / 0
Нубский вопрос по правам.
    #39009855
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVosttнапример, если пользователь создавал договора, то ему открывается фантастическая кнопка и прочее гумно, которое можно лопатой накидать. Сдаётся мне, что эта логика к системе безопасности не имеет никакого отношения.
...
Рейтинг: 0 / 0
Нубский вопрос по правам.
    #39009887
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей КhVosttнапример, если пользователь создавал договора, то ему открывается фантастическая кнопка и прочее гумно, которое можно лопатой накидать. Сдаётся мне, что эта логика к системе безопасности не имеет никакого отношения.

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

также набор утверждений можно получать из внешней среды, или даже нескольких разрозненных систем, компонуя общий список утверждений, с которым легко работать. никаких портянок и деревянной доисторической как говно мамонта схемы роль-пермиссии.
...
Рейтинг: 0 / 0
Нубский вопрос по правам.
    #39009890
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей К,

и, главное, это отлично вписывается в ASP.NET Identity, разные подходы легко сводятся к одному знаменателю. и роли есть, и пермиссии и всё остальное.
...
Рейтинг: 0 / 0
Нубский вопрос по правам.
    #39009897
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVosttАлексей К,

и, главное, это отлично вписывается в ASP.NET Identity, разные подходы легко сводятся к одному знаменателю. и роли есть, и пермиссии и всё остальное.Там нет возможности брать роли не из ClaimsIdentity без написания своего AuthorizeAttribute. Это плохо.
...
Рейтинг: 0 / 0
Нубский вопрос по правам.
    #39009943
мсущко
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
hVosttмсущкоЧто это за кал? Как мне анализировать пермиссии в теле метода контроллера?

ну также^

Код: c#
1.
2.
3.
4.
5.
6.
var allow = SecurityCache.Satisfy("/tvoya/permissiya", "nu:ili:secutity:object", "nu_ili_chtoto");
if(!allow) {

    return Forbidden("sorry, bro");

}


Чем это лучше моего ISecurityService.HasRequestCreate, IUser.IsManager? Комбинировать можно как хочешь, хоть обкомбинируйся.
...
Рейтинг: 0 / 0
Нубский вопрос по правам.
    #39010037
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
все остались при своём мнении, у топикстартера взорван мозг.
...
Рейтинг: 0 / 0
Нубский вопрос по правам.
    #39010049
Monochromatique
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Да-да, что делать то???
...
Рейтинг: 0 / 0
Нубский вопрос по правам.
    #39010065
handmadeFromRu
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Monochromatique,

походу арендовать кого то одно (мсу или хвоста ) и делать в его стиле)
...
Рейтинг: 0 / 0
Нубский вопрос по правам.
    #39010213
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MonochromatiqueДа-да, что делать то???
на Java переходить, там не зоопарк, а целый заповедник
...
Рейтинг: 0 / 0
Нубский вопрос по правам.
    #39010358
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
мсущкоЧем это лучше моего ISecurityService.HasRequestCreate, IUser.IsManager? Комбинировать можно как хочешь, хоть обкомбинируйся.

Не вижу как это можно использовать декларативно, не вижу как это можно использовать на клиенте. Надо в коде жёстко пробить свойствами/методами все разрешения, что не даёт импортировать разрешения из других подсистем, не даёт возможности без проблем вынести всю аутентификацию отдельным сервисом (как это сделано, например, на хабре).
...
Рейтинг: 0 / 0
Нубский вопрос по правам.
    #39010359
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей КТам нет возможности брать роли не из ClaimsIdentity без написания своего AuthorizeAttribute. Это плохо.

Так я говорил, что Authorize не юзабелен в принципе. Т.е. для студенческих лабараторных может быть, но обычно надо писать свои атрибуты.
...
Рейтинг: 0 / 0
Нубский вопрос по правам.
    #39010369
мсущко
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
hVosttНе вижу как это можно использовать декларативно, не вижу как это можно использовать на клиенте.
Декларативно - так же через атрибуты и внятные енумы. Клиенту информация отдается с сервера, там и используй.

hVosttНадо в коде жёстко пробить свойствами/методами все разрешения, что не даёт импортировать разрешения из других подсистем, не даёт возможности без проблем вынести всю аутентификацию отдельным сервисом (как это сделано, например, на хабре).
Для различных систем есть SSO, единый шлюз для аутентификации и авторизации. Какие могут быть проблемы? Если не нравится типизация, пили динамику. Те же яйца. Провайдер ролей - очень хорошая штатная вещь, нативная.
...
Рейтинг: 0 / 0
Нубский вопрос по правам.
    #39010375
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
мсущкоДекларативно - так же через атрибуты и внятные енумы. Клиенту информация отдается с сервера, там и используй.

Ну и нафига городить енумы, свойства и методы? Разводить бардак.


мсущкоДля различных систем есть SSO, единый шлюз для аутентификации и авторизации. Какие могут быть проблемы? Если не нравится типизация, пили динамику. Те же яйца. Провайдер ролей - очень хорошая штатная вещь, нативная.

Во-первых, он безбожно устарел. Во-вторых, в будущих версиях его не будет. В-третьих, он убогий, как и мембершип. Так нафига?

Кроме того, что ты под ролью подразумеваешь? Я говорил про утверждения, при чём это могут быть разрешения, так и целые объекты прав в сложной иерархии с зависимостями. А роль -- это что по-твоему? И что тот провайдер тебе даёт? Получить/создать/сохранить роль? НУ пипец, изобретение века! Ктож до этого додумался? Наверняка гений, не меньше!
...
Рейтинг: 0 / 0
Нубский вопрос по правам.
    #39010393
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
мсущко. Провайдер ролей - очень хорошая штатная вещь, нативная.
биде в том, что полноценной системы авторизации ролей, мягко говоря, недостаточно
...
Рейтинг: 0 / 0
Нубский вопрос по правам.
    #39010432
мсущко
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Изопропилмсущко. Провайдер ролей - очень хорошая штатная вещь, нативная.
биде в том, что полноценной системы авторизации ролей, мягко говоря, недостаточно
Так я выше привел пример расширения.

hVosttНу и нафига городить енумы, свойства и методы? Разводить бардак.
Для типизации. Плюсы типизации не очевидны?

hVosttВо-первых, он безбожно устарел. Во-вторых, в будущих версиях его не будет. В-третьих, он убогий, как и мембершип. Так нафига?
SSO устарел? Что взамен? Хвост, ты случаем не в цирке сейчас? ))

hVosttКроме того, что ты под ролью подразумеваешь? Я говорил про утверждения, при чём это могут быть разрешения, так и целые объекты прав в сложной иерархии с зависимостями. А роль -- это что по-твоему? И что тот провайдер тебе даёт? Получить/создать/сохранить роль? НУ пипец, изобретение века! Ктож до этого додумался? Наверняка гений, не меньше!
Провайдер - для ролей и маппинга identity на User. У User есть вся информация по ролям и пермиссиям. Всё, задача решена.
...
Рейтинг: 0 / 0
Нубский вопрос по правам.
    #39010460
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
мсущкоSSO устарел? Что взамен? Хвост, ты случаем не в цирке сейчас? ))

Это технология. При чём тут это? Ты начал говорить про легаси провайдер ролей, который уже выпилили считай. А теперь вдруг SSO. В порядке всё с тобой? )))


мсущкоДля типизации. Плюсы типизации не очевидны?

ЭЭмм... Какая ещё типизация? Плюсы очевидны, но не вижу как это коррелирует с ролями. Они же в базе сидят, их могут создавать, редактировать, удалять. Какая к чёрту нафиг типизация? Хорошо там всё у тебя? )))))))
...
Рейтинг: 0 / 0
Нубский вопрос по правам.
    #39010527
мсущка
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
hVosttТы начал говорить про легаси провайдер ролей, который уже выпилили считай. А теперь вдруг SSO. В порядке всё с тобой? )))
Почему легаси провайдер ролей? Где написано, что он легаси? По поводу SSO я тебе ответил на вопрос, как реализовать безопасность на нескольких сайтах. Что не так?

hVosttЭЭмм... Какая ещё типизация? Плюсы очевидны, но не вижу как это коррелирует с ролями. Они же в базе сидят, их могут создавать, редактировать, удалять. Какая к чёрту нафиг типизация? Хорошо там всё у тебя? )))))))
1. Есть статичные роли. То есть такие роли, которые нельзя удалять из базы. На них пляшет бизнес логика.
2. Есть динамичные роли. По сути, это контейнеры для пермиссий.

У меня типизация - для статичных ролей. Для динамичных ролей вообще ничего не надо, ибо динамичная роль не несет в себе никакой смысловой нагрузки. Гораздо важнее, какие пермиссии намаплены на такую роль. А пермиссии - точно так же статичны. По них сделаны енумы и жестко зашиты в коде.

Итого: везде типизация.
...
Рейтинг: 0 / 0
Нубский вопрос по правам.
    #39010529
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
мсущкаПочему легаси провайдер ролей? Где написано, что он легаси? По поводу SSO я тебе ответил на вопрос, как реализовать безопасность на нескольких сайтах. Что не так?

Ну смотри, в ASP.NET Identity при SSO мы получаем набор клеймов, утверждений. А ты что имеешь в виду?


мсущка1. Есть статичные роли. То есть такие роли, которые нельзя удалять из базы. На них пляшет бизнес логика.
2. Есть динамичные роли. По сути, это контейнеры для пермиссий.

А зачем прибивать гвоздями к этим ролям? Если у тебя всё равно на выходе пермиссии? Роли - неудаляющиеся из базы, это костыль какой-то. Сам так делал когда-то, но потом понял, что это вафля какая-то, роли они для администратора, инструмент организации. Мне нужны лишь разрешения, можно что-то делать/показывать, или нельзя. Нафига мне роли?

мсущкаУ меня типизация - для статичных ролей. Для динамичных ролей вообще ничего не надо, ибо динамичная роль не несет в себе никакой смысловой нагрузки. Гораздо важнее, какие пермиссии намаплены на такую роль. А пермиссии - точно так же статичны. По них сделаны енумы и жестко зашиты в коде.

Т.е. по твоей схеме, пермиссию нельзя состряпать в админке? Ухх.. эпоха мезозоя )))

Ну типизация на енумах это неплохо конечно. Но в итоге у тя бардак: енумы, проперти, функции IsXXX().
...
Рейтинг: 0 / 0
Нубский вопрос по правам.
    #39010531
мсущка
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
hVosttмсущкаПочему легаси провайдер ролей? Где написано, что он легаси? По поводу SSO я тебе ответил на вопрос, как реализовать безопасность на нескольких сайтах. Что не так?
Ну смотри, в ASP.NET Identity при SSO мы получаем набор клеймов, утверждений. А ты что имеешь в виду?
Изучи проект, потом приходи на экзаменацию http://codearticles.ru/articles/487

hVosttА зачем прибивать гвоздями к этим ролям? Если у тебя всё равно на выходе пермиссии?
Ну потому что часто очень удобно завязывать сразу на роль-константу, а не набор пермиссий. Оперировать в логике такими ролями гораздо удобнее.

hVosttРоли - неудаляющиеся из базы, это костыль какой-то. Сам так делал когда-то, но потом понял, что это вафля какая-то, роли они для администратора, инструмент организации. Мне нужны лишь разрешения, можно что-то делать/показывать, или нельзя. Нафига мне роли?
Это не костыль, это удобный механизм типизации. Для 99% случаев именно использую такие роли. Динамика с ролями и пермиссиями нужна в более серьезных решениях.

hVosttТ.е. по твоей схеме, пермиссию нельзя состряпать в админке? Ухх.. эпоха мезозоя )))
А какой от нее смысл? Программа ничего про неё не знает. Пермиссии - это всегда было жестким хардкодом во всех системах. От шарепоинтов до сапов.

hVosttНу типизация на енумах это неплохо конечно. Но в итоге у тя бардак: енумы, проперти, функции IsXXX().
Типизация - это хорошо. Бардака нет, есть сервис, который отвечает, что можно делать пользователю. Всё очень просто и в одном месте.
...
Рейтинг: 0 / 0
Нубский вопрос по правам.
    #39010533
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
мсущкаИзучи проект, потом приходи на экзаменацию http://codearticles.ru/articles/487

ООоокей )


мсущкаНу потому что часто очень удобно завязывать сразу на роль-константу, а не набор пермиссий. Оперировать в логике такими ролями гораздо удобнее.

Типа "менеджер" или "админ" ? Это халтурщина ))


мсущкаДинамика с ролями и пермиссиями нужна в более серьезных решениях.

Ну и как потом сопровождать это? Или ты бекапишь свой мозг, а одепты накатывают его себе в подкорку?

мсущкаА какой от нее смысл? Программа ничего про неё не знает. Пермиссии - это всегда было жестким хардкодом во всех системах. От шарепоинтов до сапов.

Чессговоря, мы от этого ушли. Т.е. пермиссия это всего лишь разрешить или не разрешать операции + условия, она вычисляется и никакими енумами ты их не задашь. Кроме станадартных операций типа create/modify/delete/view, может быть расширенный набор операций. Например, изменить запись ты не можешь, но можешь перевести статус, или отправить на рецензию... и при этом технически, запись изменяется, поэтому не катит такой подход. Набор пермиссий растёт как грибы после дождя, их количество может перевалить за сотню и даже за тысячу, этим управлять решительно невозможно. Поэтому ушли от этого. Полная динамика, енумы есть, но только для базовых операций и базовых объектов (корневых). В остальном через админку можно настроить всё, добавлять любые разрешения, настраивать их логику, условия и даже длительность. Стандартный подход, который ты описал, катастрофически неудобен, сложен в поддержке и сложно управляем.
...
Рейтинг: 0 / 0
Нубский вопрос по правам.
    #39010538
мсущка
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
hVosttТипа "менеджер" или "админ" ? Это халтурщина ))
Да. Почему халтурщина?

hVosttЧессговоря, мы от этого ушли. Т.е. пермиссия это всего лишь разрешить или не разрешать операции + условия, она вычисляется и никакими енумами ты их не задашь.
Так в большинстве случаев пермиссии - жестко зашиты с ISecurityService под роли и как-то всё это админить не надо. Дал роль юзеру, он сразу получил пермиссии. В 99% случаев годный вариант, пермиссии не выносятся куда-то в базу.
...
Рейтинг: 0 / 0
Нубский вопрос по правам.
    #39010545
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
мсущкаДа. Почему халтурщина?

Ну потому что схалявить решил :)


мсущкаТак в большинстве случаев пермиссии - жестко зашиты с ISecurityService под роли и как-то всё это админить не надо. Дал роль юзеру, он сразу получил пермиссии. В 99% случаев годный вариант, пермиссии не выносятся куда-то в базу.

Это работает, согласен. Но не гибко, и не расширяемо. Например была себе роль админ. А потом руководство решило ограничить админа и забацать суперадмина, который может только пользователями рулить, но никакими правами в системе не обладает, т.е. не может ничего ни видеть, ни редактировать, только пользователи. В твоём случае надо код переколбасить. В моём, зашёл в админку и сделал свои дела. Ни строчки кода не поменялось.
...
Рейтинг: 0 / 0
Нубский вопрос по правам.
    #39010555
мсущка
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
hVosttмсущкаДа. Почему халтурщина?
Ну потому что схалявить решил :)
Ну почему, просто реально удобнее оперировать одной ролью с жестким набором пермиссий.

мсущкаТак в большинстве случаев пермиссии - жестко зашиты с ISecurityService под роли и как-то всё это админить не надо. Дал роль юзеру, он сразу получил пермиссии. В 99% случаев годный вариант, пермиссии не выносятся куда-то в базу.

hVosttЭто работает, согласен. Но не гибко, и не расширяемо.
Я понимаю, но в данном случае не нужна гибкость и расширяемость. Если раз в сто лет потребуется поправить пермиссию, допилю сервис и забуду. Зачем нам пальба из пушки по воробьям?
...
Рейтинг: 0 / 0
Нубский вопрос по правам.
    #39010557
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
мсущкаодной ролью с жестким набором пермиссий.
ну-ну
...
Рейтинг: 0 / 0
Нубский вопрос по правам.
    #39010584
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
мсущкаЯ понимаю, но в данном случае не нужна гибкость и расширяемость. Если раз в сто лет потребуется поправить пермиссию, допилю сервис и забуду. Зачем нам пальба из пушки по воробьям?

Просту у тебя ПО по ходу деревянное и полудохлое. У нас в юзервойсах только за неделю 40 открытых заявок. Запросы на новую функциональность сыпятся каждый день. Бредовые конечно отсеиваются, часть попадает в milestone. Это не считая того, что исходит от руководства и что подпихивают бизнес-аналитики.

"Раз в столет" что-то там поправить -- типа стряхнуть вековую пыль с ПО, которое по ходу толком-то и не используется, расчихлить со вздохом исходники и поправить искомое? Если оно так, то да, согласен. Нафиг заморачиваться ))
...
Рейтинг: 0 / 0
Нубский вопрос по правам.
    #39010588
мсущка
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
hVosttПросту у тебя ПО по ходу деревянное и полудохлое. У нас в юзервойсах только за неделю 40 открытых заявок.
ПО как ПО, есть старое, есть новое. Везде используется единый принцип. Никаких проблем.

hVostt"Раз в столет" что-то там поправить -- типа стряхнуть вековую пыль с ПО, которое по ходу толком-то и не используется, расчихлить со вздохом исходники и поправить искомое? Если оно так, то да, согласен. Нафиг заморачиваться ))
Успешность ПО и заключается в том, чтобы его не трогать. Написал и забыл, дальше его саппортят, а у тебя другие задачи. Вопрос в том, чтобы процессы были правильно поставлены. А новые фичи должны быть экономически обоснованы с соответствующими выгодами.
...
Рейтинг: 0 / 0
Нубский вопрос по правам.
    #39010594
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
мсущкаУспешность ПО и заключается в том, чтобы его не трогать. Написал и забыл, дальше его саппортят, а у тебя другие задачи. Вопрос в том, чтобы процессы были правильно поставлены. А новые фичи должны быть экономически обоснованы с соответствующими выгодами.

Какие ещё другие задачи? Пол мыть? Посуду протирать? Чё ты там в офисе делаешь, если у вас разработка -- не бей лежачего, сиди в носу ковыряй, когда там кто-то экономически обоснует какую-нибудь сраную доработку и выгоду подсчитает, а пользователи куй дождутся своей фичи и поуходят нафиг в декреты, да внуков своих насожают с наивной надеждой, что хоть они чего-то там дождутся
...
Рейтинг: 0 / 0
Нубский вопрос по правам.
    #39010601
мсущка
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
hVosttКакие ещё другие задачи? Пол мыть? Посуду протирать?
Другие проекты.

hVosttЧё ты там в офисе делаешь, если у вас разработка -- не бей лежачего, сиди в носу ковыряй, когда там кто-то экономически обоснует какую-нибудь сраную доработку и выгоду подсчитает, а пользователи куй дождутся своей фичи и поуходят нафиг в декреты, да внуков своих насожают с наивной надеждой, что хоть они чего-то там дождутся
Пока подсчитываются выгоды, решаются другие проекты. Их очень много.
...
Рейтинг: 0 / 0
Нубский вопрос по правам.
    #39010606
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
мсущкаПока подсчитываются выгоды, решаются другие проекты. Их очень много.

ясно, много проектов с вялотекущим развитием. твой подход вполне катит, я тоже не заморачиваюсь на проектах с коротким циклом ТЗ-решение.
...
Рейтинг: 0 / 0
Нубский вопрос по правам.
    #39010623
мсущка
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
hVosttмсущкаПока подсчитываются выгоды, решаются другие проекты. Их очень много.
ясно, много проектов с вялотекущим развитием. твой подход вполне катит, я тоже не заморачиваюсь на проектах с коротким циклом ТЗ-решение.
Жизнь динамична, что-то срочно, что-то не совсем. По-разному. Есть задача - она решается.
...
Рейтинг: 0 / 0
Нубский вопрос по правам.
    #39010639
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
мсущкаЖизнь динамична, что-то срочно, что-то не совсем. По-разному. Есть задача - она решается.

Звучит как "налепить какую-то кривую нашлёпку по требованию"
...
Рейтинг: 0 / 0
Нубский вопрос по правам.
    #39010674
мсущка
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
hVosttЗвучит как "налепить какую-то кривую нашлёпку по требованию"
Простота не означает кривизну :)
...
Рейтинг: 0 / 0
Нубский вопрос по правам.
    #39010791
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
мсущкаhVosttЗвучит как "налепить какую-то кривую нашлёпку по требованию"
Простота не означает кривизну :)

Простота ≠ серебряная пилюля. Role-Permisson, AuthorizeAttribute и RoleProvider — это весьма примитивный подход для решения не сложного круга задач.
...
Рейтинг: 0 / 0
Нубский вопрос по правам.
    #39012472
мсущко9
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
hVosttмсущкапропущено...

Простота не означает кривизну :)

Простота ≠ серебряная пилюля. Role-Permisson, AuthorizeAttribute и RoleProvider — это весьма примитивный подход для решения не сложного круга задач.
Про серебро никто и не говорил. Есть задача, есть решение, следующий. Провайдер ролей себя окупил лет на 100 вперед. С ним никаких проблем нету, особенно учитывая факт, что у меня в 99% случаев доменная аутентификация.
...
Рейтинг: 0 / 0
Нубский вопрос по правам.
    #39012673
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
мсущко9Провайдер ролей себя окупил лет на 100 вперед. С ним никаких проблем нету, особенно учитывая факт, что у меня в 99% случаев доменная аутентификация.

Чёт я ни в одном серьёзном проекте не заметил, чтоб он себя окупил. Деревянный обрубок, который постоянно допилилвают все кому не лень. И даже если лень, то приходится. И даже наизобрелати целый набор натфилей, чтоб дотачивать было как-то по-проще. Но обрубком был, обрубком и остаётся. Единственный плюс, провайдер хорош для старта, чтоб не заморачиваться. Но чуть вопросик какой, нааааачинаается сразу... это типа не проблемы провайдера, так нельзя, он для этого не преднозначен, решайте где-нибудь ещё, бла... бла... бла.
...
Рейтинг: 0 / 0
Нубский вопрос по правам.
    #39012870
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
мсущко9Провайдер ролей себя окупил лет на 100 вперед. С ним никаких проблем нету
особенно для хелловорд
...
Рейтинг: 0 / 0
Нубский вопрос по правам.
    #39012977
мсущко9
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
hVosttЧёт я ни в одном серьёзном проекте не заметил, чтоб он себя окупил. Деревянный обрубок, который постоянно допилилвают все кому не лень. И даже если лень, то приходится. И даже наизобрелати целый набор натфилей, чтоб дотачивать было как-то по-проще. Но обрубком был, обрубком и остаётся. Единственный плюс, провайдер хорош для старта, чтоб не заморачиваться. Но чуть вопросик какой, нааааачинаается сразу... это типа не проблемы провайдера, так нельзя, он для этого не преднозначен, решайте где-нибудь ещё, бла... бла... бла.
Я не знаю, кто там у тебя постоянно допиливает. У меня это один раз написано и сто лет как работает без изменений. Если у тебя что-то постоянно допиливают, значит проблема в криворучии? Старт, пауза или конец - это никак не относится к провайдеру. Провайдер есть и его можно использовать.

Изопропилмсущко9Провайдер ролей себя окупил лет на 100 вперед. С ним никаких проблем нету
особенно для хелловорд
И для него тоже.
...
Рейтинг: 0 / 0
120 сообщений из 120, показаны все 5 страниц
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / Нубский вопрос по правам.
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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