【问题标题】:Orchard Themed Attribute outside controllers控制器外的果园主题属性
【发布时间】:2018-01-24 17:43:34
【问题描述】:

我有一项服务将覆盖响应正文的内容。
是否可以在覆盖内容的方法中使用主题?

[Themed]
public void forbiddenAlert(IHttpContextAccessor Hca) 
{
  // overriding response body 
}

【问题讨论】:

  • forbiddenAlert 是控制器动作吗?
  • @ViRuSTriNiTy 不,它是在IAuthorizationServiceEventHandler 事件处理程序中调用Checking(CheckAccessContext context) 的方法

标签: c# orchardcms


【解决方案1】:

不,我认为这不会起作用,因为 Themed 属性仅用于装饰控制器。

另外,我认为您拒绝访问的方法不正确。事件处理程序不应覆盖响应主体(关注点分离,它很可能无论如何都不起作用)。 IAuthorizationServiceEventHandler 应该检查权限并返回是否授予访问权限。授予或未授予权限时发生的情况通常是其他代码部分的关注点。我会走这条路:

  1. 在所有模块中实施适当的权限检查(IAuthorizerIAuthorizationService),并在失败时回退到任何合适的位置,例如重定向到禁止的错误页面
  2. 添加 IAuthorizationServiceEventHandler 以相应地实施检查

【讨论】:

    猜你喜欢
    • 2011-07-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-01-27
    • 2023-03-05
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多