Deutsch
Germany.ruФорумы → Архив Досок→ Программирование

​Ролевое управление.

188  
Murr патриот02.05.18 16:57
Murr
NEW 02.05.18 16:57 

Ролевое управление.


По терминологии в теме вроде все ясно - пользователь, группы, ресурсы, права.


Можно даже приспособить что-то системное для управления - Активе Директори, ЛДАП, АЦЛ -

или даже рулить всем руками.

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

и, самое основное, работающее быстро именно для задачи и адаптируемое под меняющиеся

требования.


Задачка выглядит так (возможно что-то упускаю).

Работает сервис. Веб-сервис, если точнее.

Есть куча пользователей. Ну скажем порядка 100.000, т.е. система нагруженная.

Пользователи загружают и система исполняет некоторый код. Вопрос безопасности загружаемого кода пока опускается.

Количество загружаемого кода - много. Можно считать под 100.000 единиц.


Юзвери могут быть следующие:

- админ, только управление пользователями

- владелец, тот кто загрузил ресурс

- член группы, кто-то с правами на пользование


Загружаемый код делится на 3 категории:

- общий, доступный всем юсерам

- групповой, доступный членам определенной группы и, рекурсивно, включенных групп

- частный, доступный только загрузившему пользователю.


Права на выполнение операций с кодом, насколько Я понимаю ситуацию, будут нужны следующие. На:

- создание, вообще создать что-то в группе

- изменение, что-то изменить в имеющемся в группе

- удаление

- использование


Отдельная процедура - передача прав на код между группами пользователей.

Что-то типа: передать можно только в одну сторону или передать можно только право использования.

Тут думать надо.


Еще где-то с боку лежит версионность кода.

Допустим сделали какой-то специфический чекбох версии 1.0.0.1, потом его 20 раз существенно

модифицировали, дойдя до версии 1.0.20.1. При этом версии 7, 12 и 15 - несовместимы с 1.0.0.1

(совместимость остальных пока опускаем).

Надо как-то управлять доступом к версиям.


Я не тестировал виндовую версию, но по ощущениям она начнет тормозить уже при 2-3 тыс юзеров

и 3-4 тыс управляемых единиц на усера. Не спасет даже отдельный контроллер домена.


Вопросик такой - кто-нибудь видел компактную, независимую от оси, достаточно гибкую систему

управления доступом к ресурсам?


Вопрос второй - какой структурой надо описать отношение между кодом, юсерами, группами и версиями

чтобы время верификации доступа было минимальным. Надо понимать, что приведенные списки

явно неполные и будут модифицироваться.

#1 
AlexNek патриот02.05.18 19:03
AlexNek
02.05.18 19:03 
в ответ Murr 02.05.18 16:57
Ролевое управление.

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


https://github.com/Epstone/Simple-MVC-User-Management

https://www.codeproject.com/Articles/23431/AccountPlus

https://archive.codeplex.com/?p=mywsat

https://archive.codeplex.com/?p=aspnetmemberman

https://stackoverflow.com/questions/456921/is-there-a-asp-...

#2 
Murr патриот03.05.18 11:13
Murr
NEW 03.05.18 11:13 
в ответ AlexNek 02.05.18 19:03

Посмотрел что было по линкам.

Хммм... Что-то есть. Но уж очень примитивно-слабенько. Типа студенческих поделок.


Думаю, что надо копать две вещи:

System.Web.Providers

Microsoft.AspNet.Providers


Насколько хорошо оно будет - не знаю.

Копать там, правда, много...

#3 
AlexNek патриот03.05.18 12:53
AlexNek
NEW 03.05.18 12:53 
в ответ Murr 03.05.18 11:13
Но уж очень примитивно-слабенько

Здесь есть одно интересное высказывание, типа так - нефиг палить из пушки по воробьям.


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

По крайней мере, других требований мне еще не попадалось.

#4 
Murr патриот03.05.18 13:17
Murr
NEW 03.05.18 13:17 
в ответ AlexNek 03.05.18 12:53

Обычно

-----

Хи-хи... ну ты же знаешь - у меня редко возникают "обычные" вопросы...


других требований мне еще не попадалось.

-----

Ну вот тебе другое требование:

В папке лежит куча ДЛЛок, нужно расписать кому и что можно с ними делать.

Когда сообразишь как делать для ДЛЛок - добавь еще тоже самое для классов в них...


Сторонний вопрос.

Есть большая ДЛЛка с набором классов. Ну скажем 100 штук.

Загрузка будет производится в ручную.

Из всего набора классов в ДЛЛке нужно инстанцировать 3-5 классов.

Ну и еще 3-5 тыс штук таких ДЛЛок. Перекрытие по доступной памяти - многократное.

Ворпрос - Как не упасть в своп?

#5 
AlexNek патриот03.05.18 14:32
AlexNek
NEW 03.05.18 14:32 
в ответ Murr 03.05.18 13:17
у меня редко возникают "обычные" вопросы...

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


В папке лежит куча ДЛЛок, нужно расписать кому и что можно с ними делать.

Вообще то обычный пользователь нифига про ДЛЛ-ки не знает, как и про классы в них. Чёт ты еще пропустил...


Загрузка будет производится в ручную.

Это как? ищем ДЛЛ-ку, ищем класс?

В кино покупаешь большой пакет попкорна - тута большой пакет памяти спок

#6 
Murr патриот03.05.18 16:41
Murr
NEW 03.05.18 16:41 
в ответ AlexNek 03.05.18 14:32

что то подобное тяжело будет найти.

-----

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

А стандартная задача... ну чего ее думать - https://msdn.microsoft.com/en-us/library/879kf95c.aspx - все расписано.



обычный пользователь

-----

Ну и Чо?

Ну не совсем обычные пользователи - пользователи пишущие шаблоны Т4.

Так что что там такое - они в курсе.

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

Ну типа чекбоха - есть права на 1.0.20.1 - использует у себя, на 1.0.0.1-1.0.20.0 - нету - уведомляется

что нету прав и к кому обращаться за ними. Указал без версии - используется максимальная из

доступных. Не нравится эта - указывает какую и добивается прав на пользование.

Как то так.



тута большой пакет памяти

-----

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

Я это уже делал, примеры где-то лежат. Это вне возможностей Студии, но сие меня не беспокоит.

Проблема в том, что вроде как не получается поместить модули в сабфолдер, а без этого

все будет в одной папке и на 4-5.000 файликов винда начнет загибаться. А мне требуется

много больше - 2-3.000.000 файликов...

#7 
AlexNek патриот03.05.18 20:32
AlexNek
NEW 03.05.18 20:32 
в ответ Murr 03.05.18 16:41
А мне требуется 2-3 млн.

Тебе тогда еще будет требоваться целая команда для раздачи и администрирования прав.

Правда что делать с миллионами шаблонов я тоже не представляю. Никакая студия энто не потянет.

Ну и начинай писать свою файловую систему бебе

#8 
Murr патриот03.05.18 21:05
Murr
NEW 03.05.18 21:05 
в ответ AlexNek 03.05.18 20:32

Никакая студия энто не потянет.

-----

Студия там не при делах.


будет требоваться целая команда

-----

Надеюсь, что нет - если сделать правильно - юзвери справятся со своими ресурсами - а большего и не требуется.

#9 
AlexNek патриот03.05.18 21:25
AlexNek
NEW 03.05.18 21:25 
в ответ Murr 03.05.18 21:05
Надеюсь, что нет - если сделать правильно

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

#10 
Murr патриот04.05.18 00:50
Murr
NEW 04.05.18 00:50 
в ответ AlexNek 03.05.18 21:25

Ну разве что это делать "автоматом", но тогда и права не нужны вроде

-----

Делать, разумеется, именно "автоматом", а права - права нужны - не вижу как иначе рулить доступом.


Ну и разумеется, критичные случаи, не вписывающиеся в автомат, разруливать руками.

#11 
AlexNek патриот04.05.18 13:34
AlexNek
NEW 04.05.18 13:34 
в ответ Murr 04.05.18 00:50
Делать, разумеется, именно "автоматом", а права - права нужны

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

Для совмещения с ручным вводом будет видимо иначе.

#12