.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中找出CORS