【发布时间】:2014-07-30 17:32:05
【问题描述】:
在我的 ASP.NET MVC 5 应用程序中,我们有一堆用户角色,例如 Admin、ReportUser、ProjectManager 和类似的东西。我希望应用程序根据以下规则在登录后立即将用户重定向到视图:
如果用户是管理员,则重定向到 /Admin/Index
如果用户是 ReportUser,则重定向到 /Report/Index
如果用户是 ProjectManager,则重定向到 /Project/Index
我已经在 web.config 中使用 AspNetWindowsTokenRoleProvider 设置了角色管理器,并且在 global.asax 的 MyMvcApplication_PostAuthenticateRequest 中设置了用户角色,效果很好。
但是,我不清楚在哪里以及什么是进行重定向的最佳方式。在自定义授权属性类的 OnAuthorization 方法中?还是在 global.asax 的 MyMvcApplication_PostAuthenticateRequest 方法中?
【问题讨论】:
-
老实说,你在做什么听起来很糟糕。没有理由使用任何 HttpApplication 事件。挂钩这些听起来真的像是在做一些非常非标准的身份验证/授权编码。
-
我的 Web 应用程序将存在于一个托管环境中,该环境具有 Web 代理,该代理监督该环境中的所有 Web 应用程序并执行所有身份验证。换句话说,我的就像一个儿童应用程序。 Web 代理将用户身份验证信息传递给我的应用程序,而后者仅根据传递给我的应用程序的用户角色信息进行授权。所以,是的,不是一个带有自己登录注销的独立应用程序,但我对此无能为力。
-
Eeeewww.这真的是真的 真的糟糕的设计。作为管理员,我可以轻松欺骗自己的凭据。
-
可以理解,但我对此无能为力。客户多年来一直在使用这种设计。
标签: asp.net-mvc redirect authorization asp.net-mvc-5