Web API:在收到整个请求之前执行的ActionFilter

时间:2013-05-15 16:28:07

标签: .net http asp.net-web-api filterattribute

我正在使用Web API构建Web服务,其中一个操作会收到非常大的文件。它们是视频文件,通常在100-200mb之间。这意味着上传时间会很长。

我已经编写了一个Type Formatter,以便我的控制器操作可以使用视频文件(好吧......文件信息,无论如何,由Type Formatter写入磁盘),但是在我的action方法中,我然后检查用户提交的URL参数是否有效,如果不是则抛出异常。

这似乎非常低效,因为我可以在提交HTTP请求标头后立即判断用户是否正在提交正确的URL参数 - 是否真的有必要等待另外20-30分钟才能让主体通过一个简单的404回复?

理想情况下,我希望创建(或使用现有的)FilterAttribute,它在收到HTTP请求标头之后但在提交HTTP请求主体之前执行。我认为这是可能的,因为我认为AuthorizeAttribute会想要做同样的事情,但我不知道如何实现它。我的主要困难是我还需要访问操作参数的值(其中两个在URL中,另一个显然在HTTP请求体中发布)。

有什么想法吗?

0 个答案:

没有答案