ASP.NET MVC: есть ли другой способ применения к роли в приложении, кроме как украшать его контроллеры / действия атрибутами? - PullRequest
1 голос
/ 20 ноября 2010

При использовании WSAT с приложением веб-формы ASP.NET возможно создание новой роли, добавление / удаление пользователей из нее и (что наиболее важно) определение правил, применимых к этой роли;т. е. у вас есть дерево папок , которое позволяет вам выбрать, к какой папке вы хотите применить конкретное правило в отношении определенной роли.Таким образом, вы можете выполнять всю работу, не выходя из своего WSAT.

С ASP.NET MVC я не нашел такой функциональности.Даже если можно добавить новую роль из WSAT и добавить / удалить пользователей из нее, мне все равно нужно перейти к коду моего приложения и украсить контроллеры и / или действия с атрибутами , например так:

[Authorize(Roles = "role1, role2, ...")]

Так какой смысл создавать роли с помощью инструмента, чтобы просто прикоснуться к коду приложения?Кроме того, допустим, что администратор не знает, как писать код, и ему нужно создать роль, которая немного отличается от существующих?

Есть ли другой способ применения к роли приложения, кроме украшения его контроллеров / действийс атрибутами?Я думаю, это связано с тем, как работает фреймворк.В любом случае, я хотел бы знать, есть ли способ разобраться с тем фактом, что разработчики должны постоянно играть с кодом.

Спасибо за помощь

Ответы [ 2 ]

2 голосов
/ 20 ноября 2010

Поскольку MVC является расширяемым, вы можете реализовать свой собственный AuthorizeAttribute и искать необходимые роли в базе данных или в XML-файле.

1 голос
/ 20 ноября 2010

Как правило, вам нужно сохранить функциональность, которую разрешено выполнять (или нельзя) выполнять роли, в базе данных / xml так же, как вы делали бы это в простом приложении веб-форм.создайте свой собственный фильтр авторизации, который проверит базу данных, чтобы увидеть, разрешено или нет текущее действие.Так что в истинном смысле в системе не будет много истинных ролей.

Чтобы понять, как переопределить фильтр авторизации, прочитайте это> http://schotime.net/blog/index.php/2009/02/17/custom-authorization-with-aspnet-mvc/

...