Если я реализую свой собственный CustomPrincipal в ASP.NET MVC, должен ли я использовать собственный ActionFilterAttribute? - PullRequest
0 голосов
/ 29 ноября 2009

Если я реализую свой собственный CustomPrincipal в ASP.NET MVC, я должен использовать пользовательский атрибут ActionFilterAttribute для проверки ролей, к которым принадлежат мои пользователи (как в Настройка аутентификации в ASP.NET MVC )

Когда я использую

[Authorize]

работает нормально. Но когда я использую

[Authorize(Roles=("Example"))]

он выключается и ищет:

"dbo.aspnet_CheckSchemaVersion"

Что у меня, очевидно, нет, поскольку я не добавил объекты членства ASP.NET в свою базу данных, я пишу свою собственную.

Я использую ASP.NET MVC 2 beta.

Как я могу переопределить логику, которую используют атрибуты по умолчанию, чтобы я мог использовать тот же тег, [Authorize(Roles=("Example"))]?

1 Ответ

0 голосов
/ 29 ноября 2009

Используемый вами атрибут попытается использовать RoleProvider по умолчанию, чтобы выяснить, в какой роли находится этот пользователь.

В статье он описывает создание пользовательского атрибута [UserInRole ("Admin")], который избегает RoleProvider и использует пользовательскую логику для определения роли пользователя.

Вот хорошая статья MSDN о реализации вашего собственного RoleProvider: http://msdn.microsoft.com/en-us/library/8fw7xh74.aspx

Редактировать Ответ: Вам нужно будет реализовать свой ролевой поставщик или создать собственный тег. Ваш пользовательский тег может выглядеть аналогично тегу, запеченному в MVC, но вы не можете просто сопоставить подписи и надеяться переопределить его таким образом.

...