Централизованная авторизация контроллеров и действий (ASP.NET MVC 3) - PullRequest
0 голосов
/ 09 февраля 2012

Есть ли какие-либо возможные проблемы с безопасностью или подводные камни для того, чтобы в пользовательском AuthorizeAttibute (зарегистрированном глобально) применить авторизацию на основе типа контроллера и вызываемого действия?

например (не реальный код)

string controllerFullName=_filterContext.ActionDescriptor.ControllerDescriptor.ControllerType.FullName;

string minRequiredRole = GetControllerMinRequiredRole(controllerFullName);

if(User.MeetsRoleRequirement(minRequiredRole))
{
     //give access
}
else
{
    //no you're not allowed
}

1 Ответ

1 голос
/ 09 февраля 2012

Основная проблема связана с кэшированием авторизации, поэтому необходимо знать несколько вещей. Проверьте ссылки, которые я разместил здесь:

Создание атрибута AuthorizeAttribute - что мне нужно знать?

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

...