.Net Core 3.1 Web Api 的 403 Forbidden Error 仅适用于 Delete & PUT 方法

Posted

技术标签:

【中文标题】.Net Core 3.1 Web Api 的 403 Forbidden Error 仅适用于 Delete & PUT 方法【英文标题】:403 Forbidden Error for .Net Core 3.1 Web Api only for Delete & PUT method 【发布时间】:2021-03-30 06:59:01 【问题描述】:

.Net Core 3.1 和 angular 中的应用程序在本地完美运行。我托管了托管服务提供商之一的相同应用程序。

我收到错误“403 - 禁止访问:访问被拒绝”。用于 Web api 响应中的 PUT 和 DELETE 方法。我不知道为什么 GET 和 POST 方法在同一个应用程序中工作。

ASP.NET Core with IIS - HTTP Verb Not Allowed

以上链接有一些相同的问题,但出现 405 错误。同一线程中给出的解决方案也尝试过,但对我不起作用。

请帮忙。

【问题讨论】:

403 禁止表示授权失败。您是否在 Web API 中配置了任何 Auth 服务? 【参考方案1】:

这段代码对我有用。

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
  <location path="." inheritInChildApplications="false">
    <system.webServer>
      <modules runAllManagedModulesForAllRequests="false">
        <remove name="WebDAVModule" />
      </modules>
      <handlers>
        <add name="aspNetCore" path="*" verb="*" modules="AspNetCoreModuleV2" resourceType="Unspecified" />
      </handlers>
      <aspNetCore processPath="dotnet" arguments=".\XXXXXXXXXXX.dll" stdoutLogEnabled="false" stdoutLogFile=".\logs\stdout" hostingModel="inprocess" />
    </system.webServer>
  </location>
</configuration>

【讨论】:

【参考方案2】:

我向我的托管服务提供商提出了一张票。他们做了一些设置,然后就可以正常工作了。

【讨论】:

【参考方案3】:

你的前端是有角度的吗?如果是,则必须正确添加 auth bearer header 以进行 put 和 delete。

【讨论】:

以上是关于.Net Core 3.1 Web Api 的 403 Forbidden Error 仅适用于 Delete & PUT 方法的主要内容,如果未能解决你的问题,请参考以下文章

Wcf 服务在 .NET Core 3.1 控制台应用程序中工作,但在 ASP.NET Core 3.1 Web API 中无法工作

Asp.net core 3.1 保护 API 和 Web 应用程序

一文了解.Net Core 3.1 Web API基础知识

无法在.net core 3.1 web api中找出CORS

在 .Net Core 3.1 的 Web Api 中无法使用 Cors [重复]

ASP.Net Core 3.1 - Web API 中的 Post 参数始终为 NULL