0

我有一个 ASP.NET 应用程序。在这个应用程序中,我有一个页面,用户可以在其中向服务器提交大量数据。但有时我只需要检查一些请求标头并可能完全拒绝请求。在这些情况下,我不希望我的服务器内存在一段时间内保存大量不必要的用户提交数据。ASP.NET 中是否有任何方法不保留任何用户提交的数据,直到我在读取标头后发出信号。

4

1 回答 1

1

都是随请求一起发送的。为了做你想做的事,你需要两个请求,因为整个“直到我发出信号”意味着一个服务器响应和另一个客户端请求。

根据您要检查的内容,您可以执行两阶段请求,让客户端首先提交一个简单请求,获取一些授权码以提交更大的请求,然后将该授权码与更大的请求一起发送。这基本上就是大多数 Web API 中授权的工作方式,但这完全取决于客户端是否符合规范。

在文档化的 API 中,这应该不是问题,因为客户会明白,除非他们遵循程序,否则他们将无法与 API 交互。对于通用网站来说,这是一个更大的问题,浏览器本身无法正确处理此问题,即使可以,最终用户也可能不会合作。

但是,即使在 API 环境中,您仍然会收到来自不合格客户端的大量未经授权的请求。它们将被阻止,但您的服务器仍然必须对其进行处理才能阻止,这违背了阻止它的目的。您还不如在那个时候继续完成它,而不是引发额外的请求,包括在经过适当授权时重复大型请求。

总而言之,试图阻止它真的没有意义。您最好的选择是将表单或其他内容简单地分解为多个步骤,以便各个发布的步骤不会那么大,如果有问题,您可以在第一个较小的请求时停止它。

于 2013-03-01T19:14:55.080 回答