【问题标题】:C# OrchardCMS Enable features dynamicallyC# OrchardCMS 动态启用功能
【发布时间】:2018-01-29 15:35:50
【问题描述】:

作为question 的一部分。有没有办法动态启用功能?

我想要实现的是与 Orchard 中的 Permissions 完全相同的概念。除了限制用户使用此功能之外,我不希望它们显示在前端。

这仍然可以使用自定义权限来实现,但是我在问题中提到的由 ViRuSTriNiTy 回答的不同,权限不会立即实例化,但它将从IAuthorizationServiceEventHandler 上的第三方 API 接收

    public void Complete(CheckAccessContext context)
    {
     /// get the permission for the current IUser via thirdpart API
     /// Enable/Disable features depending on the response
    } 

说我将收到如下的 json 响应:

[{ "Permission": "Home"  }, { "Permission": "Videos"  }]

【问题讨论】:

  • 功能是每个租户启用的,很早。我认为没有办法根据请求或延迟启用或禁用它们。权限似乎是实现您要实现的目标的方法。异步性应该不是问题,尤其是在适当缓存的情况下。
  • @BertrandLeRoy 权限将限制没有权限的用户使用它们,但我想禁用显示而不是功能
  • 不,权限只是你可以检查的东西,你可以在任何地方进行。

标签: c# orchardcms


【解决方案1】:

可以使用IModuleService接口的EnableFeatures()/DisableFeatures()。

虽然这可能不适用于处理程序,但我从来没有遇到需要在处理程序中启用/禁用功能的情况。

【讨论】:

  • 这些调用不会启用/禁用整个租户的功能吗?
  • @Bovaz 是的,当然,启用/禁用总是会影响租户。为什么要问?
  • 我认为问题是关于为每个用户做事
  • @Bovaz 不错。链接的问题是指特定用户,但此问题没有再次提及“特定用户”。所以我不太确定意图是什么:/
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-02-27
  • 2018-01-19
  • 2013-08-25
  • 1970-01-01
  • 2019-05-17
  • 1970-01-01
相关资源
最近更新 更多