【发布时间】:2015-11-19 17:47:28
【问题描述】:
我有一个 ASP.NET WebApi,客户端通过 HMAC 进行身份验证。
身份验证在 AuthenticationFilter 中完成。
为了将 HMAC 密钥与客户端提供的密钥进行比较,我需要阅读 Request.Content。到这里为止一切都很好。
在 ParameterBinding 中,我还需要从 Request.Content 中读取。这工作正常,直到内容不是multipart/form-data。 StringContent和ByteArrayContent可以通过content.ReadAsStringAsync()/content.ReadAsByteArrayAsync()多次读取,但ReadAsMultipartAsync()只能调用一次。
因此,经过身份验证后,我无法再次读取内容(例如在 ParamterBinding 中)以从请求内容中提取数据/图像等。
我读到ReadAsStringAsync() / ReadAsByteArrayAsync() 在内部调用LoadIntoBufferAsync(),它将请求内容加载到内存缓冲区中。但是对我的多部分内容执行此操作并不能解决此问题。
例外是:
MIME 多部分流意外结束。 MIME 多部分消息不是 完成。
【问题讨论】:
标签: asp.net-web-api multipartform-data hmac