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; }
...
}
我有一些基于用户会话的验证逻辑。 我可以从继承自 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; }
...
}