2015-04-24 2 views
0

Я сейчас создаю приложение в MVC5. Данные разных корпораций хранятся в одной базе данных, и люди получают доступ к ним под контролем «[Авторизовать (...)]» и некоторые другие костюмированные фильтры. С ростом числа контроллеров и действий я все больше беспокоюсь о безопасности, например: есть ли какие-либо действия без авторизации или с неправильной авторизацией?Любой способ получить статистику авторизации MVC приложения?

Итак, вопрос: есть ли какие-либо 1. Представления отчетов в Visual Studio (возможно, не разработаны, чтобы сделать работу) 2. Третьи инструменты часть 3. Что-то еще

, которые дают четкую карту авторизация всех контроллеров/действий? Это критическая работа, и я думаю, что должны быть какие-то решения, а не проверять все эти файлы кода.

Спасибо.

ответ

0

Я люблю использовать FluentSecurity из-за этого. Из них документы:

Игнорирование отсутствующих конфигураций

По умолчанию FluentSecurity будет сгенерировано исключение, если отсутствует конфигурация встречается для действия контроллера. Если вы не хотите, чтобы FluentSecurity обрабатывала безопасность для всех контроллеров, вы можете сказать, чтобы игнорировать отсутствующие конфигурации. Вы можете сделать это, добавив configuration.IgnoreMissingConfiguration(); к вашей конфигурации выражение.

Он ставит конфигурации безопасности в один файл, делает их единым проверяемым и обычно полезен. Существует небольшая кривая обучения, чтобы понять, как загрузить ее и настроить. Вы можете установить его и быстро перейти с помощью nuget.

Помимо этого, есть Арент действительно каких-либо инструментов, которые я знаю, что может сделать репортаж, что вы просите о ... если вы не хотите, чтобы написать батарею модульных тестов против каждого actionmethod:

[TestFixture] 
public class AccountControllerTests { 

    [Test] 
    public void Verify_ChangePassword_Method_Is_Decorated_With_Authorize_Attribute() { 
     var controller = new AccountController(); 
     var type = controller.GetType(); 
     var methodInfo = type.GetMethod("ChangePassword", new Type[] { typeof(ChangePasswordModel) }); 
     var attributes = methodInfo.GetCustomAttributes(typeof(AuthorizeAttribute), true); 
     Assert.IsTrue(attributes.Any(), "No AuthorizeAttribute found on ChangePassword(ChangePasswordModel model) method"); 
    } 
} 
+0

Sorry за последнее время и спасибо за ответ. Но на самом деле это ответ на мой второй шаг: как проверить их. И первый ответ: «Сколько действий я получил, и все ли они разрешены?» Теперь я беспокоюсь, что могут быть какие-то действия без авторизации, и поскольку новые действия добавляются каждый день, их сложно отследить :( – cheny

Смежные вопросы