Чтобы этот пример был прост, на моем сайте есть два контроллера, UserController & VenuesController, оба из которых имеют свое собственное «разрешение администратора».MVC 3 Action/Controller Attributes/Permissions
Таким образом, пользователь может иметь «Пользователь» разрешения администратора и/или «Venues» разрешение администратора (это BOOL поле на таблице пользователей в моем дб)
Пользователь входит в системе, и я его/ее разрешения в сеансе.
Я хочу украсить мои контроллеры специальным атрибутом, чтобы проверить, имеет ли пользователь правильное разрешение на использование контроллера. Я не хочу создавать UserPermissionAttribute и VenuePermissionAttribute, в идеале я хочу один атрибут, который принимает свойство bool и проверяет, что это правда, поэтому что-то вроде;
[CheckPermissionAttribute(_userSession.AdminPermissions.Users)]
public class UsersController : Controller
{
}
и
[CheckPermissionAttribute(_userSession.AdminPermissions.Venues)]
public class VenuesController : Controller
{
}
Это можно достичь, или я должен смотреть на PostSharp или что-то еще, чтобы достичь тех же результатов?
Почему бы вам не просто использовать встроенные функции управления ролями? Вы просто назначаете роль VenuesAdmin и UsersAdmin пользователям, которым вы хотите иметь эти разрешения, а затем добавьте проверку, используя стандартный атрибут Authorize? –
Да, это вариант, возможно, самый лучший вариант, так как он стоит, приложение не использует поставщик членства, поэтому я изучаю другие способы достижения того же самого? – lordy1981
Откуда вы знаете, кто такой пользователь? –