Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/azure/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
对于具有Azure标识的WebAPI,我应该如何通过404故障?_Azure_Asp.net Web Api_Azure Active Directory_Azure Web App Service - Fatal编程技术网

对于具有Azure标识的WebAPI,我应该如何通过404故障?

对于具有Azure标识的WebAPI,我应该如何通过404故障?,azure,asp.net-web-api,azure-active-directory,azure-web-app-service,Azure,Asp.net Web Api,Azure Active Directory,Azure Web App Service,我在Visual Studio 2019预览版中创建了一个WebAPI,并选择了Azure Identity进行身份验证。当我运行API时,我得到一个未授权404错误 这是我在appsettings.json文件中看到的 我应该如何在Azure门户中修复401错误 "AzureAd": { "Instance": "https://login.microsoftonline.com/", "Domain": "myemailmycompany.onmicrosoft.com"

我在Visual Studio 2019预览版中创建了一个WebAPI,并选择了Azure Identity进行身份验证。当我运行API时,我得到一个未授权404错误

这是我在
appsettings.json
文件中看到的

我应该如何在Azure门户中修复401错误

  "AzureAd": {
    "Instance": "https://login.microsoftonline.com/",
    "Domain": "myemailmycompany.onmicrosoft.com",
    "TenantId": "xxxxxxxx-xxxx-xxxx-xxxx-dcbeeeac82d9",
    "ClientId": "xxxxxxxx-xxxx-xxxx-xxxx-ac3f-9a785f72fd83"
  }

您不能这样运行项目,因为您没有身份验证令牌或任何东西,因为它是一个web API

您可能想从这里开始,因为我不确定您使用的是什么客户端,但这是一个很好的示例。


我已经解决了您描述的问题。根据QuickStart的示例代码(基于core 2.0的MVC项目),它可以正常运行,但我们使用VS2019在本地创建了一个core 3.0 api项目。它不能正常工作

我认为问题可能在于mvc和webapi项目的创建有点不同,但是需要研究和研究的区别在哪里呢

为此,我进行了一些研究。比较示例代码和您自己的代码之间的差异,很遗憾您找不到具体的原因

所以我创建了.NETCore3.0MVC项目。控制器使用webapi格式,
Startup.cs
Program.cs
文件不需要任何修改。它还可以满足webapi的项目需求并实现功能。您可以在github中下载我的


您需要修改appsettings.json中的一些内容,首先,这个演示使用Core3.0,所以我建议您使用vs2019打开它。然后你可以检查WeatherForecastController.cs,并测试api。

我在appsettings.son中的ClientID中使用Azure门户中的应用程序ID URI来进行身份验证。

问题不在于此,你可以在
应用注册
中使用演示代码,它可以工作。但是dotnet core的版本是2.0,这篇文章只是创建一个项目,然后使用ad身份验证。你遇到的错误代码应该是401,对吗?我的建议写在答案中,你可以尝试一下,如果你需要部署到azure,你需要在门户上设置
身份验证。希望对你有帮助。我想知道你的问题是否解决了?我的回答对你有帮助吗?如果有更好的方法解决这个问题,你也可以发送你自己的答案,这可以更好地帮助论坛中的其他人。我使用Visual Studio 2019预览创建了WebAPI。DotNetCore版本是3.1。我正在使用POSTMAN访问您提供的URL。我检查了我的Azure帐户。我看到申请表了。与MVC应用程序在Azure上显示注册/登录屏幕不同,我看不到类似的东西。你能下载我的演示代码,然后再试一次吗。我在webapi中添加ad auth时发现错误。如果可能的话,你可以使用mvc项目来做这件事。当你在webapi项目中添加ad-auth时,出现了一些错误。我不能解决这个问题。从QuickStart下载的演示代码也使用mvc。