【发布时间】:2012-11-28 12:24:56
【问题描述】:
我想延迟我的网站身份验证请求的响应,以便服务器在收到请求时的特定秒数偏移处开始响应。
例如,如果用户在04:00:00 进行身份验证,我希望回复在04:00:05 返回,而不是迟早。如果代码不可能赶上截止日期,我希望它会导致错误。
这必须在服务器端完成,我想避免使用Thread.Sleep。不过,我在想可能有一种方法可以使用异步控制器并在请求的继续部分中使用 Thread.Sleep
这里有人遇到过类似的挑战吗?您的解决方案是什么?
你们中的任何人都可以想出一种方法来做到这一点,同时避免Thread.Sleep 并保持响应能力吗?
【问题讨论】:
-
你为什么要这样做?
-
“不早不晚”?网络(不)可靠性呢?
-
@Dai 身份验证尝试的响应时间可用于确定有关 Web 应用程序逻辑停止位置的各种信息。例如,您可以通过测量用户名是否比已知不存在的用户名更快地返回来测试用户名是否存在于数据库中。我有一个多阶段身份验证方案,其中有太多变量,无法使它们中的每一个都能抵抗此类攻击。我只是想根据最短和最长时间来指定这些操作需要多长时间。不考虑延迟,因为它是一个不可控的变量。
-
@Ian 我只关心动作何时开始和停止,而不是需要多长时间才能被接收或响应需要多长时间才能被传回。由于网络延迟超出了操作的范围,所以这无关紧要。严格来说,这是完成内部身份验证操作所需的时间。希望澄清一点!