首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >apiprotector.net错误已添加具有相同密钥的项。密钥: X-API-Protector

apiprotector.net错误已添加具有相同密钥的项。密钥: X-API-Protector
EN

Stack Overflow用户
提问于 2021-10-11 10:53:12
回答 1查看 19关注 0票数 0

ApiProtector.Net (https://apiprotector.net/),给出错误:已经添加了一个具有相同键的元素。Key: X-API-Protector,当我使用多个规则保护一个端点时。

[ApiProtector(ApiProtectionType.ByIpAddress, Limit: 10, TimeWindowSeconds: 10, PenaltySeconds: 60)]

[ApiProtector(ApiProtectionType.ByIdentity, Limit: 10, TimeWindowSeconds: 10, PenaltySeconds: 60)]

EN

回答 1

Stack Overflow用户

发布于 2021-10-11 12:08:13

我发现解决方案是ApiProtector.Net中的一个bug。尝试在隐藏程序中多次添加密钥: X-API-Protector

创建一个继承自ApiProtector的类,并覆盖OnActionExecuted方法。

代码语言:javascript
复制
public class CustomApiProtector : ApiProtector
{
    public CustomApiProtector(ApiProtectionType type, uint limit, uint timeWindowSeconds, uint penaltySeconds ):base(type, limit, timeWindowsSecond, penaltySeconds)
    {

    }

    public override void OnActionExecuted(ActionExecutedContext context)
    {

        base.OnActionExecuted(context);


        IHeaderDictionary headers = context.HttpContext.Response.Headers;
        StringValues locationHeaderValue = string.Empty;
        if (headers.TryGetValue("X-API-Protector", out locationHeaderValue))
        {
            context.HttpContext.Response.Headers.Remove("X-API-Protector");
            
        }

      
    }

}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/69525028

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档