C# 服务堆栈拦截所有Http到服务
是否有一种方法可以拦截所有命中您的服务的http请求 例如: 请求C# 服务堆栈拦截所有Http到服务,c#,.net,http,
servicestack,C#,.net,Http,
servicestack,是否有一种方法可以拦截所有命中您的服务的http请求 例如: 请求http://host/Account/Create在单个位置捕获并重定向到正确的服务 请求http://host/Account/Delete/1在单个位置捕获并重定向到正确的服务 有没有一种简单的方法可以做到这一点?如果您想了解有关过滤器如何工作的具体细节,可以查看for ServiceStack 如果您只想通过类似于request.PathInfo的方式过滤每个请求,那么PreRequestFilter很可能就是您想要的 P
http://host/Account/Create
在单个位置捕获并重定向到正确的服务
请求http://host/Account/Delete/1
在单个位置捕获并重定向到正确的服务
有没有一种简单的方法可以做到这一点?如果您想了解有关过滤器如何工作的具体细节,可以查看for ServiceStack
如果您只想通过类似于request.PathInfo
的方式过滤每个请求,那么PreRequestFilter
很可能就是您想要的
PreRequestFilter
将为每个请求触发,但您的DTO尚未被反序列化。请参见ServiceStack自己的中的示例用法
在我的场景中,我使用了RequestFilters
,因此我能够根据requestDto.GetType()
首先键入,然后根据需要返回到httpReq.PathInfo
。但是,这只会激发REST请求
我在AppHost类中执行以下操作:
this.RequestFilters.Add((httpReq, httpResp, requestDto) =>
{
if (AppConfig.RequireSsl)
new RequireSslAttribute().Execute(httpReq, httpResp, requestDto);
// Force authentication if the request is not explicitly made public
if (!AppConfig.IsPublic(httpReq, requestDto.GetType()))
new AuthenticateAttribute().Execute(httpReq, httpResp, requestDto);
});