Интеграционное тестирование MVC с AuthorizeAttribute - PullRequest
3 голосов
/ 24 января 2012

На сайте интрасети, использующем проверку подлинности Windows и определенные методы контроллера, помеченные как «AuthorizeAttribute», контролирующий доступ к определенным пользователям / группам и ролям, я пытаюсь найти лучший способ разрешить «тестовым пользователям» доступэти вещи.

Поскольку не обсуждается с MVC (вопросы безопасности), какой здесь лучший подход?

Моя первая мысль - реализовать следующее:

  1. Пользовательский раздел конфигурации, который по существу отражает раздел
  2. Пользовательский атрибут, который наследуется от "AuthorizeAttribute", который проверяет пользователей на соответствие пользовательскому разделу конфигурации
  3. Использовать преобразования для преобразования вудалить пользовательский раздел конфигурации для сред QA и Release

Есть ли более простой / лучший способ ???

1 Ответ

2 голосов
/ 24 января 2012

Обновление То, что я первоначально написал, использовал синтаксис атрибута для класса или метода, но если вы используете MVC3, вы также можете использовать фильтр глобальных действий в (global.asax.cs), так что вам придется делать это только один раз.

public static void RegisterGlobalFilters(GlobalFilterCollection filters)
{
#if DEBUG
    filters.Add(new AuthorizeAttribute() {Users="YourAccount"});
#endif
    //Your other global action filters
}

Оригинал Вы можете использовать #, если DEBUG, только для добавления авторизации к коду отладки.

#if DEBUG
    [Authorize(Users = "YourAccount")]
#endif

Атрибут Authorize допускает множественное число, поэтому вам не нужно повторять свой список авторизованных пользователей или использовать # else.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...