2012-12-30 22 views
1

如何传入请求限制的作用时间,例如我不想重复的用户数据后行动。有什么方法可以为操作应用时间限制?如何限制请求数量到行动的时间

+0

你能提供更多关于发布内容的信息吗?用户是否已登录?或来宾用户? – DarthVader

回答

2

您通常无法限制传入请求 - 它们来自您的控制之外的计算机。你可以做的是拒绝请求(即有503个响应),或者如果你以某种方式控制客户端,你可以限制合法客户端发出的请求数量。

为了能够合理地拒绝传入的请求,你需要了解每个特定用户以前的请求(即最后请求时间/索引存储的cookie,或者存储在会话状态的一些信息)的一些信息。有了这些信息,你应该能够编写动作过滤器来检查条件并拒绝请求。

注意,非合法用户,将能够轻松地绕过不依赖于服务器端存储(如会话状态)的所有限制。如果你不能autorize用户(即用户名),限制现有会话的数量可能problmatic太...

+0

+1它使得点'你可以做的是要么拒绝请求(即503响应)' – exexzian

1

这里有一个简单的方法我会怎么做。

每个用户创建一个GUID,与帖子的最后日期时间一起,把它推到用户在cookie中。每次用户发布内容,阅读cookie。检查日期时间,如果用户在用户可以再次发布之前发布了某些内容,则返回回应,并说“滑下老虎!”否则继续。你可以自己定义这个Timespan。

简易否?

在另一方面,如果你想例如只有10个用户调用你的行动,你需要一个原子计数器。 Interlocked是你的朋友。您可以在方法的开始处递增,然后在末尾递减。

哦。信号量如何,在概念上适合你的问题。