Azure active directory 身份验证更新后的WEBAPI CORS错误

Azure active directory 身份验证更新后的WEBAPI CORS错误,azure-active-directory,cors,azure-web-app-service,asp.net-core-webapi,microsoft-identity-platform,Azure Active Directory,Cors,Azure Web App Service,Asp.net Core Webapi,Microsoft Identity Platform,我有一个运行在Azure中的Angular应用程序,它连接到同样运行在Azure中的WEBAPI。分开的网站。一切正常,但最近在我的API代码中,我开始收到以下警告: Severity Code Description Project File Line Suppression State Warning CS0618 'AzureADAuthenticationBuilderExtensions.AddAzureAD(AuthenticationBuilder, Ac

我有一个运行在Azure中的Angular应用程序,它连接到同样运行在Azure中的WEBAPI。分开的网站。一切正常,但最近在我的API代码中,我开始收到以下警告:

Severity    Code    Description Project File    Line    Suppression State
Warning CS0618  'AzureADAuthenticationBuilderExtensions.AddAzureAD(AuthenticationBuilder, Action<AzureADOptions>)' is obsolete: 'This is obsolete and will be removed in a future version. Use AddMicrosoftWebApiAuthentication from Microsoft.Identity.Web instead. See https://aka.ms/ms-identity-web.'   MExBrightsign.API   D:\Repos\WHQMuseums\MExBrightsign\CMS\MExBrightsign.API\Startup.cs  53  Active
如果我更改行: .AddAzureAD(options=>Configuration.Bind(“AzureAd”,options))

到 .AddMicrosoftIdentityWebApi(Configuration.GetSection(“AzureAd”)

我从我的角度应用程序中得到所有调用的CORS错误

其他一切都没有改变

我还需要做些什么来避免CORS错误。 现在,我只是离开这个过时的呼叫,但我想在删除该呼叫之前找到一个解决方案

谢谢你的帮助

编辑:附加信息 詹森·潘的评论对我没有帮助,但它确实让我思考。我已经配置了Azure应用程序服务CORS。我意识到我从未真正部署到Azure,并看到了CORS错误。我在本地跑步。我做了一行更改,所有对WEBAPI的角度调用都返回了CORS错误。 请注意,我的WEBAPI的startup.cs文件中包含以下内容:

    var origins = Configuration.GetSection("AppSettings:AllowedOrigins").Value.Split(",");
    services.AddCors(o => o.AddPolicy(mexSpecificOrigins, builder =>
    {
        builder.WithOrigins(origins)
               .AllowAnyMethod()
               .AllowAnyHeader()
               .AllowCredentials()
               .SetIsOriginAllowed((host) => true);
    }));
以下是appsettings.json:

  "AppSettings": {
    "EnvironmentName": "LOCAL",
    "AllowedOrigins": "http://localhost:4200"
  },
因此,在本地运行时,我只在startup.cs中配置了CORS,但在Azure中,我在startup.cs和Azure CORS配置中都配置了CORS


困扰我的是我只换了一行。新电话有什么不同。我认为它增加了额外的安全性。我将尝试部署到Azure,并查看CORS错误是否继续。如果可以,那么我只需要担心本地开发。

如果不想再更改api代码,可以在门户中配置
CORS

更多细节,你可以在另一篇文章中阅读我的答案


如果不想再更改api代码,可以在门户中配置
CORS

更多细节,你可以在另一篇文章中阅读我的答案


添加以配置startup.cs的方法(在app.UseRouting()之后):

并将您的来源更改为:

var origins = Configuration["AppSettings:AllowedOrigins"];
或更改允许的来源:

"AllowedOrigins": ["http://localhost:4200"]
并尝试删除:

 .SetIsOriginAllowed((host) => true);

添加以配置startup.cs的metod(在app.UseRouting()之后):

并将您的来源更改为:

var origins = Configuration["AppSettings:AllowedOrigins"];
或更改允许的来源:

"AllowedOrigins": ["http://localhost:4200"]
并尝试删除:

 .SetIsOriginAllowed((host) => true);

如果我的解决方案对你有用,你能接受我的答案吗,tks。如果我的解决方案对你有用,你能接受我的答案吗,tks。在我在这里发布之前,我已经转到Azure Portal并在CORS菜单下启用访问控制允许凭据。在我在这里发布之前,我已经转到Azure Portal并在CORS菜单下启用访问控制允许凭据。我已经有了这一行,但它是在app.UseRouting之前。我移动了线路,但我仍然收到相同的CORS错误:从源站“”访问“”处的XMLHttpRequest已被CORS策略阻止:对飞行前请求的响应未通过访问控制检查:请求的资源上不存在“访问控制允许源站”标头。请检查我的上一次更改。这些建议都没有任何影响。我已经收到了行,但这是在app.UseRouting之前。我移动了行,但仍然得到相同的CORS错误:从源站“”访问“”处的XMLHttpRequest已被CORS策略阻止:对飞行前请求的响应未通过访问控制检查:请求的资源上不存在“访问控制允许源站”标头。请检查我的上一次更改。这些建议均未产生任何影响。