c# - 如何重定向我的 mvc asp.net web 应用程序中除一个角色之外的所有页面?

标签 c# asp.net-mvc asp.net-mvc-4 redirect

我使用 asp.net c# mvc 框架。我需要一种方法来为除管理员以外的所有用户“关闭”我的网络应用程序(即,对于除管理员以外的所有角色,所有页面都应返回类似“应用程序已关闭”的内容)。

我已经创建了一个按钮,以便将网络应用程序的状态(开/关)保存在数据库中。

我是否必须在每个页面上检查申请的状态? 除了一个角色之外,是否可以进行全局重定向?

我不知道如何正确执行此全局关闭。欢迎提出任何建议。

最佳答案

我可以想到三种检查和重定向的方法

  1. HttpModule挂接到适当的授权后事件。大概PostAuthorizeRequestHttpApplication .

  2. 在您的“全局”(Global.aspx.cs) 中订阅相同的事件。

  3. MVC Action 过滤器,覆盖 OnActionExecuting . (确保将其设为全局,以避免需要应用到每个 Controller :添加到 Application_Start 中的 GlobalFilters.Filters。)

这 3 个是 MVC 的一部分,但在管道中要晚得多(将完成更多工作,当过滤器失败时将被丢弃)。

模块的使用由配置控制,这样更容易打开和关闭。

选项 2 可能最容易实现,但我倾向于更喜欢 1 提供的模块化。

关于c# - 如何重定向我的 mvc asp.net web 应用程序中除一个角色之外的所有页面?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25115145/

相关文章:

c# - 在 GET/POST 上为 ViewModel 填充 SelectList 的最佳方法

asp.net-mvc - 与 MVC4.5 捆绑在发布后不起作用

asp.net-mvc - 我怎么知道在 MVC 中重定向之前用户去过哪里?

c# - 如何在Windows Service中实现互斥

c# - 带有 jQ​​uery DatePicker 的 ASP.NET

c# - 如何在 web.config 中引用 DLL?

asp.net - 我如何处理和缩小 asp.net MVC 中的 GZipped 表单帖子?

c# - asp.net MVC JavaScript 调用 Controller

c# - asp.net mvc4 生成新的帐户确认 token

c# - 在页面上查找特定类型的所有 UserControl,可能使用 LINQ?