ServiceStack 中基于会话的验证

Session based validation in ServiceStack

我有一些基于用户会话的验证逻辑。 我可以从继承自 AbstractValidator 的 class 访问会话吗?

或者有其他方法可以检查基于 RequestDTO 的会话吗?

例如,我可以为此使用过滤器(并且我可以在重写的 Execute 方法中通过 IRequest 参数 req 访问会话),但我不知道如何 return [=18] 的响应=] 的过滤器,绕过了操作的主要方法。如果我将抛出异常,该服务将无法正常工作,因为 RequestDTO 在我的项目之外声明并且它不是从 IReturn<> 继承的并且不包含 ResponseStatus 字段。

在此先感谢您的帮助(对不起我的英语)

如果您的验证器实现了 IRequiresRequest,那么它将注入当前的 IRequest,您可以在 lambda 表达式中使用它,例如:

public class CustomValidator : AbstractValidator<Request>, IRequiresRequest 
{
    public IRequest Request { get; set; }
    ...
}