gpt4 book ai didi

rest - 强制 ASP .Net Web API 阻止错误 (403) 的 HTTP 请求

转载 作者:太空宇宙 更新时间:2023-11-03 13:51:55 25 4
gpt4 key购买 nike

我想将我的项目配置为不允许具有以下限制的 http 请求:

  1. 它必须是对所有 API 的全局限制(通过 web.config、安装程序中的脚本等)
  2. 它必须是硬编码的(不是在IIS中的APP上按“需要SSL”)
  3. 没有“重定向”- 只返回错误 (403)

我理想的选择是通过在安装程序中运行的脚本配置“需要 SSL”。

最佳答案

这可以通过编写一个简单的 ActionFilter 来完成,它会检查请求并在方案未设置为 ssl 时做出响应。一个非常小的实现可能类似于:

public class RequireHttpsAttribute : ActionFilterAttribute
{
public override void OnActionExecuting(HttpActionContext actionContext)
{
if (actionContext.Request.RequestUri.Scheme != Uri.UriSchemeHttps)
{
actionContext.Response = new HttpResponseMessage(HttpStatusCode.Forbidden);
}
}
}

要使其适用于任何地方,您可能希望在应用程序启动时将其注册为 WebAPI 配置中的全局过滤器。这看起来像:

public static class WebApiConfig
{
public static void Register(HttpConfiguration config)
{
config.Filters.Add(new RequireHttpsAttribute());

// ... More configuration ...
}
}

如果您稍微搜索一下网络,您会发现许多类似过滤器的示例,这些过滤器具有更强大的逻辑,可能更能满足您的需求。

关于rest - 强制 ASP .Net Web API 阻止错误 (403) 的 HTTP 请求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40400796/

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