gpt4 book ai didi

Azure 中的 ASP.NET Web API : Customize authentication filter to prevent brute force?

转载 作者:行者123 更新时间:2023-12-02 11:05:11 24 4
gpt4 key购买 nike

我有一个来自 VS2013 SPA 模板 (web api 2.2) 的网站,它利用 ASP.NET Identity 2.1,一切都运行得很好。我的 Controller 方法如下所示:

    [Authorize]
public Api.Models.Widget Get(int widgetId)
{
var requestingUserId = Int32.Parse(Microsoft.AspNet.Identity.IdentityExtensions.GetUserId(User.Identity));
...

}

它按预期工作:

  • 未经授权的用户无权访问
  • 授权用户进入后,我可以获得他们的用户 ID

但是我现在想要修改应用程序以防止过多的 API 请求。我计划检查该特定用户 ID 是否在特定时间范围内发出了一定数量的请求。我正在寻找执行此操作的最佳位置的建议。

我不想在每个 Controller 中重复这个逻辑,而且 Action 过滤器似乎是最好的地方。但是,由于这需要读取用户 ID,并且我不确定过滤器的顺序是否得到保证,因此如果可能的话,派生已被调用以进行授权的过滤器并添加额外的逻辑也可能是有意义的。

我想知道是否有人可以举一个做类似事情的例子?看起来它不是“授权”,而是在自定义身份验证过滤器中,我不确定如何将其结合在一起。

感谢您的建议...

最佳答案

我认为您正在寻找的是一个过滤器,它将限制用户发出的请求,因此您应该检查 WebApiThrottle https://github.com/stefanprodan/WebApiThrottle

这应该可以实现您的目标,或者您可以查看源代码来根据您的需求进行自定义

关于Azure 中的 ASP.NET Web API : Customize authentication filter to prevent brute force?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26303796/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com