Я добавляю ASP.NET MVC в существующее приложение WebForms. В настоящее время мне не нужна аутентификация/регистрация, так как эта часть обрабатывается существующим кодом (проверка подлинности форм).Разрешение на основе разрешений в ASP.NET MVC3
В существующем приложении WebForms у нас есть полностью настраиваемая авторизация на основе разрешений на страницу. Таким образом, каждый пользователь имеет набор прав, перечисляя страницы, на которые ему разрешен доступ.
Теперь мне нужно решить, как использовать одну и ту же систему разрешений для ограничения доступа к определенным контроллерам и действиям MVC.
Как я понимаю, для ASP.NET MVC существует стандарт AuthorizeAttribute, где я могу указать роли. Я также нашел несколько статей, которые предполагают, уточняющие права вместо роли - то, что можно сделать что-то вроде этого:
[CustomAuthorize(Roles = "View products, Edit products")]
Расширяя AuthorizeAttribute, я могу также определить, как хранить и права доступа.
Это решение было бы приемлемым для меня (хотя изменение семантики ролей немного пахнет).
Но прежде чем переходить к нему, я хотел бы посмотреть, какие у него есть другие варианты. И вот где я застрял - я не нашел полномасштабный обзор различных подходов к авторизации в ASP.NET MVC. Я также хотел бы знать, как все концепции безопасности (например, Аутентификация форм, Поставщики членства, Атрибут авторизации, IPrincipal и т. Д.) Связаны друг с другом и как они должны работать вместе.
Это похоже на то, что было опробовано здесь: http://stackoverflow.com/questions/10338734/custom-security-scenario-in-asp-net-mvc/ – antijon
@antijon Насколько я понимаю, это похоже на реализуя пользовательский атрибут AuthorizeAttribute. Но я хотел бы узнать более подробно о других вариантах и их плюсах и минусах. –