You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

ASP.NET Core中如何拦截非允许的HTTP请求方法

在ASP.NET Core中禁用指定外的HTTP方法

你可以通过修改中间件,一次性拦截所有不在允许列表内的HTTP方法,返回405状态码,同时设置Allow响应头告知客户端允许的方法。替换你当前的中间件代码为以下内容:

app.Use(async (context, next) =>
{
    // 定义允许的HTTP方法集合
    var allowedMethods = new HashSet<string> { "GET", "POST", "HEAD" };
    
    if (!allowedMethods.Contains(context.Request.Method))
    {
        // 返回405方法不允许
        context.Response.StatusCode = StatusCodes.Status405MethodNotAllowed;
        // 设置Allow头,明确告知允许的方法
        context.Response.Headers.Append("Allow", string.Join(", ", allowedMethods));
        return;
    }
    
    await next.Invoke();
});

说明

  • 这段代码会在请求进入后续管道前,先检查请求方法是否在允许列表中,不在则直接返回405,避免触发后续框架内部错误导致的500状态码。
  • 设置Allow头是HTTP规范的要求,能让客户端清晰知道哪些方法是被允许的。

内容的提问来源于stack exchange,提问作者Suzaku

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.08 07:45:48