首页 > 解决方案 > 在 .Net Core API 中,当我使用 Microsoft Identity AddSignIn 而不是旧解决方案时 AddAuthentication CORS 不起作用

问题描述

因此,我使用 Microsoft.Identity.Web 的预览版进行 Azure 身份验证,它工作正常。但是我们的前端是 React 并托管在其他地方。所以我们需要为此启用 Cors。但我收到如下 Cors 错误:

已从源“http://localhost:3000”访问“https://login.microsoftonline.com/....”(从“https://localhost:44323/imrprojects/search”重定向)获取被 CORS 策略阻止:对预检请求的响应未通过访问控制检查:请求的资源上不存在“Access-Control-Allow-Origin”标头。如果不透明的响应满足您的需求,请将请求的模式设置为“no-cors”以获取禁用 CORS 的资源。

如果我更改代码并使用旧的解决方案,它工作正常!startup.cs 中的代码:

 //services.AddAuthentication(sharedOptions =>
            //{
            //    sharedOptions.DefaultScheme = JwtBearerDefaults.AuthenticationScheme;
            //})
            //.AddAzureAdBearer(options => Configuration.Bind("AzureAd", options));

            services.AddSignIn(Configuration);

如果我使用 services.AddAuthentication 它可以工作,但是当我使用 services.AddSignIn 它不工作。

顺便说一句,我有 services.AddCors 和 app.UseCors 。

标签: asp.net-coreazure-authenticationmicrosoft-identity-platform

解决方案


谢谢你!你说的对。我想我必须使用 AppProtectedWebAPI。

现在我在前端收到此错误,但我认为我需要在应用注册中添加范围或角色。

在不记名令牌中找不到范围或角色声明


推荐阅读