我使用 asp.net c# mvc 框架。我需要一种方法来为除管理员以外的所有用户“关闭”我的网络应用程序(即,对于除管理员以外的所有角色,所有页面都应返回类似“应用程序已关闭”的内容)。
我已经创建了一个按钮,以便将网络应用程序的状态(开/关)保存在数据库中。
我是否必须在每个页面上检查申请的状态? 除了一个角色之外,是否可以进行全局重定向?
我不知道如何正确执行此全局关闭。欢迎提出任何建议。
请您参考如下方法:
我可以想到三种检查和重定向的方法
安
HttpModule挂接到适当的授权后事件。大概PostAuthorizeRequest的HttpApplication.在您的“全局”(
Global.aspx.cs) 中订阅相同的事件。MVC Action 过滤器,覆盖
OnActionExecuting. (确保将其设为全局,以避免需要应用到每个 Controller :添加到Application_Start中的GlobalFilters.Filters。)
这 3 个是 MVC 的一部分,但在管道中要晚得多(将完成更多工作,当过滤器失败时将被丢弃)。
模块的使用由配置控制,这样更容易打开和关闭。
选项 2 可能最容易实现,但我倾向于更喜欢 1 提供的模块化。
