Skip to main content
 首页 » 编程设计

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

2024年02月06日30lyj

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

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

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

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

请您参考如下方法:

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

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

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

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

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

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

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