If you want to make brute force attacks less feasible, why don't you implement a lock (force password reset) after (say) 3 incorrect attempts to log into one account without interfering with the correct login?
If you need DDOS protection, I would deal with this separately - quite possibly, with something before the traffic starts from your web server. It really depends on whether you will
I don't know if there is an easy way to delay a response asynchronously in ASP.NET at the moment. I expect that with async included in C # 5 and .NET 5, you can return a Task<ActionResult> , after which you can write something like:
await Task.Delay(1000);
source share