【问题标题】:Separate functionality depending on Role in ASP.NET MVC根据 ASP.NET MVC 中的角色分离功能
【发布时间】:2011-02-21 10:56:01
【问题描述】:

我正在寻找一种优雅的模式来解决这个问题:

我的系统中有多个用户角色,对于我的许多控制器操作,我需要处理略有不同的数据。

举个例子

/Users/Edit/1

这允许Moderator 编辑users 的电子邮件地址,但Administrators 可以编辑用户的电子邮件地址和密码。

我想要一个设计来分隔GETPOST 的两个不同的操作代码位。

目前我想出的解决方案是:

  • 在每个方法中切换,但是当我想要在 POST 上使用不同的模型参数时,这并没有真正的帮助:(
  • 自定义控制器工厂,从控制器名称和当前用户角色中选择 UsersController_ForModeratorsUsersController_ForAdmins 而不仅仅是 UsersController
  • 自定义操作调用程序,以与上述类似的方式选择 Edit_ForModerators 方法
  • 有一个 IUsersController 并在我的 IoC 容器中注册它的不同实现作为基于角色的命名实例
  • 在运行时使用 Castle DynamicProxy 构建控制器的实现,并将方法操作为来自基于角色的实现的方法

我更喜欢命名的 IoC 实例路由 atm,因为这意味着我的所有 url/路由都可以无缝运行。

想法?有什么建议吗?

【问题讨论】:

    标签: asp.net-mvc design-patterns architecture


    【解决方案1】:

    哇,没有答案。这是我对 IoC 方法的尝试,除非有人有其他想法,否则我想我会继续这样做。

    Segregating Controller Logic Based on User Role in ASP.NET MVC

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-08-19
      • 1970-01-01
      • 1970-01-01
      • 2019-04-21
      • 2014-02-26
      相关资源
      最近更新 更多