果园主题属性外部控制器
Orchard Themed Attribute outside controllers
我有一项服务会覆盖响应正文的内容。
是否可以在覆盖内容的方法中使用主题?
[Themed]
public void forbiddenAlert(IHttpContextAccessor Hca)
{
// overriding response body
}
不,我认为这不会起作用,因为 Themed
属性仅用于装饰控制器。
此外,我认为您拒绝访问的方法不正确。事件处理程序不应覆盖响应主体(关注点分离,它很可能无论如何都不起作用)。 IAuthorizationServiceEventHandler
应该检查权限和 return 是否授予访问权限。授予或未授予权限时发生的情况通常是其他代码部分的关注点。我会走这条路:
- 在所有模块中实施适当的权限检查(
IAuthorizer
, IAuthorizationService
),并在失败时回退到任何合适的地方,例如重定向到禁止的错误页面
- 添加一个
IAuthorizationServiceEventHandler
以相应地实施检查
我有一项服务会覆盖响应正文的内容。
是否可以在覆盖内容的方法中使用主题?
[Themed]
public void forbiddenAlert(IHttpContextAccessor Hca)
{
// overriding response body
}
不,我认为这不会起作用,因为 Themed
属性仅用于装饰控制器。
此外,我认为您拒绝访问的方法不正确。事件处理程序不应覆盖响应主体(关注点分离,它很可能无论如何都不起作用)。 IAuthorizationServiceEventHandler
应该检查权限和 return 是否授予访问权限。授予或未授予权限时发生的情况通常是其他代码部分的关注点。我会走这条路:
- 在所有模块中实施适当的权限检查(
IAuthorizer
,IAuthorizationService
),并在失败时回退到任何合适的地方,例如重定向到禁止的错误页面 - 添加一个
IAuthorizationServiceEventHandler
以相应地实施检查