Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Какие есть механизмы ?
|
|||
|---|---|---|---|
|
#18+
Привет. Как управлять логикой проверок, которые нужны на клиентской и серверной стороне в приложении Asp Net Mvc ? Например нужно задизейблить кнопку по некоему условию, и в то же время и в соответствующем методе(экшене) тоже нужна проверка - чтобы не получилось вызвать его напрямую. Есть какие-то наработки, для того, чтобы это все централизовано как-то хранилось ? Потому, что сейчас логика проверок несколько размазана. Логика есть на вьюхе (для нескольких кнопок), но она есть и в куче экшенов, соответствующих этим кнопкам. Не удобно поддерживать, т.к. нужно синхронизировать все эти проверки между собой. PS. не предлагать переход на различные (изоморфные) технологии. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.08.2016, 11:33 |
|
||
|
Какие есть механизмы ?
|
|||
|---|---|---|---|
|
#18+
ProBiotekНапример нужно задизейблить кнопку по некоему условию По какому? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.08.2016, 12:00 |
|
||
|
Какие есть механизмы ?
|
|||
|---|---|---|---|
|
#18+
skyANA, Ну например у пользователя нету прав нажать на кнопку. И соответственно в экшене нужно проверить тоже, что у пользователя нет прав вызвать метод. Вот эта проверка if будет и там и там. А если проверок несколько, например несколько кнопок на вьюхе, то получится на вьюхе несколько таких ifов, и еще в каждом экшене должна быть согласованная проверка. Сопровождать такое не очень удобно. Нужно будет поправить на вьюхе и не забыть зайти в экшен, ну и т.д. Хотелось узнать, может как-то централизованно все это можно сделать. Может придумали люди что-то для большего удобства разработки-сопровождения. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.08.2016, 12:11 |
|
||
|
Какие есть механизмы ?
|
|||
|---|---|---|---|
|
#18+
ProBiotekskyANA, Ну например у пользователя нету прав нажать на кнопку. И соответственно в экшене нужно проверить тоже, что у пользователя нет прав вызвать метод. Вот эта проверка if будет и там и там. А если проверок несколько, например несколько кнопок на вьюхе, то получится на вьюхе несколько таких ifов, и еще в каждом экшене должна быть согласованная проверка. Сопровождать такое не очень удобно. Нужно будет поправить на вьюхе и не забыть зайти в экшен, ну и т.д. Хотелось узнать, может как-то централизованно все это можно сделать. Может придумали люди что-то для большего удобства разработки-сопровождения. И чем же это не удобно? Покажите что-ли код. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.08.2016, 12:15 |
|
||
|
Какие есть механизмы ?
|
|||
|---|---|---|---|
|
#18+
skyANA, Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. Как потом поддерживать это все в синхронизированном состоянии, если учесть что на вьюхе можеть быть несколько таких проверок и соответственно нужно контролировать несколько экшенов параллельно ? Логика размазана по вьюхе и нескольким экшенам нескольких контролеров. Есть ли способ свести все это как то в одну точку ? Как то упростить поддержку что ли. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.08.2016, 12:27 |
|
||
|
Какие есть механизмы ?
|
|||
|---|---|---|---|
|
#18+
Достаточно 1 метода, который по текущему пользователю, экшену или view будет определять есть ли права. Вызов конечно везде где надо придется натыкать руками. Это так на вскидку, может есть что и покрасивей. Можно еще смотреть в сторону ActionFilterAttribute ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.08.2016, 14:14 |
|
||
|
Какие есть механизмы ?
|
|||
|---|---|---|---|
|
#18+
ЕвгенийВ, Вы правы. С правами можно реализовать через аттрибуты. Мой вопрос несколько шире проверки прав доступа. Я лишь привел 1 пример и написал про права доступа. Проверки могут быть какими угодно, хоть "Не позволять удалять, если что-то там". Как я понимаю это уже в аттрибут не засунуть, т.к. слишком уж кастомная проверка. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.08.2016, 14:37 |
|
||
|
Какие есть механизмы ?
|
|||
|---|---|---|---|
|
#18+
ProBiotekЕвгенийВ, Вы правы. С правами можно реализовать через аттрибуты. Мой вопрос несколько шире проверки прав доступа. Я лишь привел 1 пример и написал про права доступа. Проверки могут быть какими угодно, хоть "Не позволять удалять, если что-то там". Как я понимаю это уже в аттрибут не засунуть, т.к. слишком уж кастомная проверка. Какая нафик разница? В атрибуте все равно вызов метода, в котором можно запретить например пользователю ProBiotek задавать вопросы на sql.ru если цена нефти марки бренд меньше 100$ :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.08.2016, 15:07 |
|
||
|
Какие есть механизмы ?
|
|||
|---|---|---|---|
|
#18+
ProBiotekКак потом поддерживать это все в синхронизированном состоянии, если учесть что на вьюхе можеть быть несколько таких проверок и соответственно нужно контролировать несколько экшенов параллельно ? Логика размазана по вьюхе и нескольким экшенам нескольких контролеров. Есть ли способ свести все это как то в одну точку ? Как то упростить поддержку что ли. К примеру у нас так: - на клиенте Код: javascript 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. - на сервере Код: c# 1. 2. 3. 4. 5. Проблем с поддержкой не испытываем. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.08.2016, 15:18 |
|
||
|
Какие есть механизмы ?
|
|||
|---|---|---|---|
|
#18+
skyANA, ну вот вот. я и ищу что то подобное. Чтобы не дублировать код, т.к. поддерживать и синхронизировать долго. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.08.2016, 16:07 |
|
||
|
Какие есть механизмы ?
|
|||
|---|---|---|---|
|
#18+
ProBiotekskyANA, ну вот вот. я и ищу что то подобное. Чтобы не дублировать код, т.к. поддерживать и синхронизировать долго. Дак перенесите эту свою проверку в единственное место, а в представлении и контроллере используйте результат вызова оного. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.08.2016, 10:21 |
|
||
|
Какие есть механизмы ?
|
|||
|---|---|---|---|
|
#18+
ProBiotek, я так понял, вам советуют на клиенте написать js объект, который будет содержать в себе логику, сформированную на сервере, а вот процедуры формирования логики уже будут единые ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.08.2016, 14:22 |
|
||
|
Какие есть механизмы ?
|
|||
|---|---|---|---|
|
#18+
monstrU, Да, возможно хороший выход. Видимо будет некий объект у Модели передающейся на вьюху, где будет отдельный массив или список, или объект с набором булевых свойств где будет сохранен результат "расчета логики на сервере". ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.08.2016, 11:34 |
|
||
|
Какие есть механизмы ?
|
|||
|---|---|---|---|
|
#18+
skyANA Код: javascript 1. 2. 3. Проблем с поддержкой не испытываем. Этого на клиенте никак не поменять? F12 там.... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.08.2016, 14:23 |
|
||
|
Какие есть механизмы ?
|
|||
|---|---|---|---|
|
#18+
ЕвгенийВskyANA Код: javascript 1. 2. 3. Проблем с поддержкой не испытываем. Этого на клиенте никак не поменять? F12 там.... Мы скрипты комбайним и минифицируем. Но даже если кому-то захочется разобраться и выполнить в консоли код, создающий вожделенную кнопку, то толку с этого не будет. Серверная проверка прав не пройдёт. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.08.2016, 18:38 |
|
||
|
|

start [/forum/topic.php?fid=18&tid=1355766]: |
0ms |
get settings: |
6ms |
get forum list: |
8ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
26ms |
get topic data: |
7ms |
get forum data: |
2ms |
get page messages: |
28ms |
get tp. blocked users: |
1ms |
| others: | 220ms |
| total: | 302ms |

| 0 / 0 |
