Я пытаюсь создать лучший способ войти попытку несанкционированного доступа к контроллеру/Action с .net MVC, в основном требованиями являются:Logging/Аудит 403 Запросы
- Если они не вошли в систему то мы хотим перенаправить их на страницу входа в систему.
- Если они вошли в систему, но не имеют необходимых учетных данных для страницы, тогда мы хотим зарегистрировать информацию о запросе, кто они такие, какие-то материалы HttpRequest и т. д., затем перенаправить их на страницу несанкционированного доступа.
1, очевидно, обрабатывается по умолчанию с помощью фильтров атрибутов .net mvc [Authorize]. 2 Я частично реализовал, я создал специальный атрибут авторизации, который расширяет фильтр действия авторизации, который переопределяет метод HandleUnauthorizedRequest по умолчанию, чтобы проверить несколько дополнительных вещей и вернуть HttpResult с кодом ответа 403.
Я не имея проблем с реализацией другой части этого, ведение журнала информации в базе данных. Конечно, это простое решение для входа в него из самого настраиваемого атрибута, но это не кажется правильным, похоже, что я делаю этот атрибут более умным, тогда он должен быть, в конце концов, он должен просто знать об ограничении доступа, а не о регистрации информации в базе данных.
Существует еще одно решение, регистрирующее его, когда оно попадает на страницу несанкционированного доступа, которая не чувствует себя так же плохо, но все еще не совсем корректна.
Лично я хотел бы иметь возможность обрабатывать его где-то в цепочке запросов, но насколько я могу судить, нет места, где у меня есть доступ ко всей необходимой информации. Я пробовал оглянуться, но не нашел ничего, что вполне соответствует решению, которое мы собираемся сделать.
Кто-нибудь там реализовал нечто похожее на то, что мы собираемся или какие-либо идеи относительно того, где это должно быть реализовано.
Спасибо, MD
Это блестяще, именно то, что мы ищем! – MDo