Авторизация на основе разрешений -в ASP.NET MVC3

Я добавляю ASP.NET MVC в существующее приложение WebForms. На данный момент меня не волнует аутентификация/вход в систему, так как эта часть обрабатывается существующим кодом (Аутентификация с помощью форм ).

В существующем приложении WebForms у нас есть полностью настраиваемое разрешение -на основе авторизации для каждой страницы. Таким образом, у каждого пользователя есть набор прав, в котором перечислены страницы, к которым ему разрешен доступ.
Теперь мне нужно решить, как я могу использовать ту же систему разрешений для ограничения доступа к определенным контроллерам и действиям MVC.

Насколько я понимаю, для ASP.NET MVC есть стандартный AuthorizeAttribute , где я могу указать роли. Я также нашел несколько статей, в которых предлагается указывать разрешения вместо ролей -, тогда можно сделать что-то подобное:

[CustomAuthorize(Roles = "View products, Edit products")]

Расширив AuthorizeAttribute, я также могу определить, как я храню разрешения и получаю доступ к ним.

Это решение было бы приемлемым для меня (хотя изменение семантики ролей немного попахивает ).
Но перед тем, как взяться за это, я хотел бы посмотреть, какие еще есть варианты. И здесь я застрял -Я не нашел полного -обзора различных подходов к авторизации в ASP.NET MVC.Я также хотел бы знать, как все концепции безопасности (, такие как аутентификация с помощью форм, поставщики членства, атрибут авторизации, IPrincipal и т. д. ), связаны друг с другом и как они должны работать вместе.

7
задан Dmytro Shevchenko 26 April 2012 в 22:14
поделиться