果园主题属性外部控制器

时间:2018-01-23 11:11:11

标签: c# orchardcms

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

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

1 个答案:

答案 0 :(得分:1)

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

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

  1. 在所有模块中实施适当的权限检查(IAuthorizerIAuthorizationService),并且在任何合适的情况下都会失败。重定向到禁止的错误页面
  2. 添加IAuthorizationServiceEventHandler以相应地执行检查