У меня есть страница ASP.NET MVC с FluentSecurity. Я установил его с помощью Ninject в соответствии с this article. У меня есть DenyAnonymousAccessPolicyViolationHandler
, который хорошо работает. Я добавил RequireRolePolicyViolationHandler
.FluentSecurity: RequireRolePolicyViolationHandler не получает вызов
В моей установке, я
configuration.For<SettingsController>().RequireRole(CMSRoles.Admin);
Если я перейти к SettingsController
с пользователем без необходимой роли, то RequireRolePolicyViolationHandler
не дозвонились. Вместо этого я перенаправлен на страницу LogOn, как определено в web.config
.
Я что-то упустил? Согласно документации FluentSecurity, она должна работать.
EDIT: У меня есть обычай RoleProvider зарегистрирован и я использую его с FluentSecurity:
configuration.GetAuthenticationStatusFrom(() => HttpContext.Current.User.Identity.IsAuthenticated);
configuration.GetRolesFrom(() => Roles.GetRolesForUser(HttpContext.Current.User.Identity.Name));
EDIT: Я создал минимальный пример приложения: https://dl.dropboxusercontent.com/u/73642/MvcApplication1.zip. Если вы перейдете в/Записано, что вы перенаправлены на страницу входа, так что работает DenyAnonymousAccessPolicyViolationHandler
. Вы можете войти с любым именем пользователя и паролем. Перейдите к Settings
, и вы увидите, что вы перенаправлены на страницу входа вместо RequireRolePolicyViolationHandler
beeing.
Можете ли вы опубликовать некоторый код, чтобы показать, как вы настраиваете это, чтобы мы могли помочь вам. – lopezbertoni
@lopezbertoni моя настройка точно такая же, как связанная статья –
Пожалуйста, разместите затем свой код DenyAnonymousAccessPolicyViolationHandler. Вероятно, это просто перенаправление на страницу входа. Также сообщите, как вы настраиваете Fluent Security, как вы получаете роли и т. Д.Трудно помочь, не глядя на код. – lopezbertoni