Как задать ограничение на количество запросов для определенных пользователей в MVC 5?
Здравствуйте!
Сайт+API на MVC 5. Есть метод, который для НЕ авторизованных пользователей должен быть доступен для тестирования допустим 5 вызовов в день. Для авторизованных 10 раз в день. А для тех, кто оплатил услугу, уже согласно тарифу. Этот метод будет и в MVC контроллере и в API. Как создать такое ограничение для MVC и API? При поиске натыкался только на ограничение запросов по времени (допустим не чаще 1 раза за какой-то период). Заранее спасибо!
Сергей: Даже ответить Вам не могу так как не знаю вообще как нужно это делать (вот и хотелось бы узнать как правильнее). Использую аутентификацию и авторизацию Asp Identity.
Не понятно в чём проблема. Для каждого пользователя своя роль в соответствии с этим анализируете права... далее добавляете в табл. пользователей доп. поле типа инт, в нём храните счётчик... ну а там как обычно анализируете, если больше 5 то блокируете, в ноль часов счётчик сбрасываете.... Определить роль пользователя можно через [Authorize(Roles = "Moder")] или User.IsInRole...
Так изначально планировал. Но как отфильтровать тех, кто не авторизован (им метод тоже должен быть доступен для пробы но определенное количество раз)? Есть ли способ отсекать нежелательные запросы без обращения к бд, или с минимальным количеством обращений? Как отделить одного не авторизованного от другого?
babaevmm: Не авторизованных, думаю ни как... если даже использовать кэш, будут чистить историю браузера... по этому, оптимальным решением считаю запретить не авторизованным пользователям соответствующее действие...