|
Вопрос по проектированию ASP.Net Core 3.1
|
|||
---|---|---|---|
#18+
1. Как правильно реализовывается запрет на выполнение запроса? к примеру, есть запрос типа request/getdata/355 в документе 1 я имею право его выполнять, а вот в документе 2 уже нет(к примеру не я его создатель и тд) . Я, конечно могу, проверять каждый запрос через БД, но на сколько это уложит БД и на сколько это вообще правильно? Как вообще разруливаются подобные вещи? я то понимаю, что я дожен его проверить, и скорее всего через базу, но интересует опыт больших корпоративных проектов с онлайном 1000+ 2. Кто как в 3.1 возвращает данные выполнения запроса? Ну типа асинхронно, строкой, объектом и тд и почему. Я видел разные реализации, не могу определится. Дет пару месяцев назад я переделывал на асинхронное выполнение запроса, но потом оказалось что они в разы медленнее синхронных, если ОС не винда. ... |
|||
:
Нравится:
Не нравится:
|
|||
02.09.2020, 16:01 |
|
Вопрос по проектированию ASP.Net Core 3.1
|
|||
---|---|---|---|
#18+
ther 1. Как правильно реализовывается запрет на выполнение запроса? к примеру, есть запрос типа request/getdata/355 в документе 1 я имею право его выполнять, а вот в документе 2 уже нет(к примеру не я его создатель и тд) . Я, конечно могу, проверять каждый запрос через БД, но на сколько это уложит БД и на сколько это вообще правильно? Как вообще разруливаются подобные вещи? А если не через БД, как программа поймёт, что к документу пользователю нет доступа? Какого волшебства вы ожидаете? :) В любом случае через БД, хотите снизить нагрузку на БД -- кешируйте, но не забывайте про инвалидацию. ther опыт больших корпоративных проектов с онлайном 1000+ Не имеет значения большой проект или маленький, вы сейчас воюете с вымышленной проблемой. Первое, вы сами придумали идею "положат" БД, не столкнувшись с этим в реальности. Второе, если вы подразумеваете намеренную атаку, то на стороне приложения такая защита не реализуется. Для этого используется WAF. ther 2. Кто как в 3.1 возвращает данные выполнения запроса? Ну типа асинхронно, строкой, объектом и тд и почему. Я видел разные реализации, не могу определится. Дет пару месяцев назад я переделывал на асинхронное выполнение запроса, но потом оказалось что они в разы медленнее синхронных, если ОС не винда. По возможности асинхронно. Что значит строкой/объектом/и т.д.? Зависит исключительно от того, как реализован клиент. Сейчас стандарт это возврат JSON, в asp.net core объект транслируется в JSON автоматически, из коробки. Это реализуется объектом действия ObjectResult. В действии контроллера вы возвращаете объект так: return Ok(yourObject); ther Дет пару месяцев назад я переделывал на асинхронное выполнение запроса, но потом оказалось что они в разы медленнее синхронных, если ОС не винда. Асинхронное выполнение не ускоряет выполнение запроса, скорее немножко замедляет. Если вы не понимаете, зачем вам асинхронное выполнение, почитайте про это отдельно. Тут тоже никакой магии нет :) ... |
|||
:
Нравится:
Не нравится:
|
|||
02.09.2020, 17:03 |
|
Вопрос по проектированию ASP.Net Core 3.1
|
|||
---|---|---|---|
#18+
не знаю, почему вы решили, что я жду зайца из рукава. Пост не про магию, а про опыт. так как для того, что бы лочить запрос, надо понимать, что его надо лочить, к примеру надо скрыть на фронте какой то таб, соответственно, все запросы в этом табе должны быть залочены. Или есть 2 таба, с одним и тем же запросом, но разными параметрами, один надо лочить, другой нет. У меня есть общая картина, как это сделать, но я хотел бы узнать, как это делают в рабочих проектах, какой структура таблиц должна быть, ведь надо где то хранить url запроса и компонент, который отображает результат выполнения этого запроса и тд ... |
|||
:
Нравится:
Не нравится:
|
|||
02.09.2020, 17:50 |
|
Вопрос по проектированию ASP.Net Core 3.1
|
|||
---|---|---|---|
#18+
ther не знаю, почему вы решили, что я жду зайца из рукава. Пост не про магию, а про опыт. Когда глины нет, но надо слепить горшок -- это уже не про опыт :) ther так как для того, что бы лочить запрос, надо понимать, что его надо лочить, к примеру надо скрыть на фронте какой то таб, соответственно, все запросы в этом табе должны быть залочены. Или есть 2 таба, с одним и тем же запросом, но разными параметрами, один надо лочить, другой нет. У меня есть общая картина, как это сделать, но я хотел бы узнать, как это делают в рабочих проектах, какой структура таблиц должна быть, ведь надо где то хранить url запроса и компонент, который отображает результат выполнения этого запроса и тд Теперь я уже не понимаю, чего вы хотите. Как это в интерфейсе реализовать? Это уже UX, и немного не в тему? Как "лочить" -- это просто, верните код ошибки 404. В ASP.NET Core это делается просто: return NotFound(); Слово "лочить" в разработке означает инструменты для синхронизации потоков или блокировки ресурса при конкурентном доступе. ... |
|||
:
Нравится:
Не нравится:
|
|||
02.09.2020, 20:15 |
|
Вопрос по проектированию ASP.Net Core 3.1
|
|||
---|---|---|---|
#18+
Так тебе же уже все ответили. Урл хранить не надо А остальное, что кому можно - роль, пользователь, ресурс Роль и пользователь определяется стандартно, средствами asp.net. уже тут 403 может вернуть само приложение, изкаробки А дальше - запросами в вашу систему прав ... |
|||
:
Нравится:
Не нравится:
|
|||
02.09.2020, 20:20 |
|
|
start [/forum/topic.php?fid=18&fpage=6&tid=1354639]: |
0ms |
get settings: |
8ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
26ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
43ms |
get tp. blocked users: |
1ms |
others: | 12ms |
total: | 124ms |
0 / 0 |