【发布时间】:2013-07-09 09:34:00
【问题描述】:
我有一个带有 FluentSecurity 的 ASP.NET MVC 页面。我根据this article 使用 Ninject 设置了它。我有一个运行良好的DenyAnonymousAccessPolicyViolationHandler。我添加了RequireRolePolicyViolationHandler。
在我的设置中,我有
configuration.For<SettingsController>().RequireRole(CMSRoles.Admin);
如果我使用没有所需角色的用户导航到 SettingsController,则不会调用 RequireRolePolicyViolationHandler。相反,我被重定向到 web.config 中定义的登录页面。
我错过了什么吗?根据 FluentSecurity 文档,它应该可以工作。
编辑:我注册了一个自定义 RoleProvider,并将其与 FluentSecurity 一起使用:
configuration.GetAuthenticationStatusFrom(() => HttpContext.Current.User.Identity.IsAuthenticated);
configuration.GetRolesFrom(() => Roles.GetRolesForUser(HttpContext.Current.User.Identity.Name));
编辑:我创建了一个最小的示例应用程序:https://dl.dropboxusercontent.com/u/73642/MvcApplication1.zip。如果您转到 /Logged,您将被重定向到登录页面,因此 DenyAnonymousAccessPolicyViolationHandler 可以工作。您可以使用任何您想要的用户名和密码登录。转到Settings,您会看到您被重定向到登录页面,而不是执行RequireRolePolicyViolationHandler。
【问题讨论】:
-
您能否发布一些代码来展示您是如何设置的,以便我们尝试帮助您。
-
@lopezbertoni 我的设置和链接的文章完全一样
-
请发布您的 DenyAnonymousAccessPolicyViolationHandler 代码。这可能只是重定向到登录页面。另外,发布您如何配置 Fluent Security、如何获得角色等。不看代码很难提供帮助。
-
@lopezbertoni 我编辑了我的问题。
标签: c# asp.net asp.net-mvc security fluent-security