BLAZOR、ASPCORE 5和AzureAPP:已被CORS策略阻止



我有一个问题,不知道如何解决。我使用blazor、AzureAD和azure Service(我可以登录(,但问题是访问azureBD中数据库的数据。我不知道为什么重定向。我尝试了很多代码:(也许我错过了什么??

错误:

访问"获取https://login.microsoftonline.com/12acee71-6c99-48a3-9ff7-02fc9a24288a/oauth2/v2.0/authorize?client_id=5153b62a-311b-4c00-a0d0-at-ver=6.7.1.0'(从'重定向https://rims.rafint.com/api/TblTeamStdRoles'(来源'https://rims.rafint.com'已被CORS策略阻止:对飞行前请求的响应未通过访问控制检查:请求的资源上不存在"access control Allow Origin"标头。如果不透明响应满足您的需求,请将请求的模式设置为"无cors",以在禁用cors的情况下获取资源。

未能加载资源:net::ERR_Failed

startup.cs:

services.AddDbContext<RIMS_Copy24apr21Context>(options =>
options.UseSqlServer(
Configuration.GetConnectionString("DbContext")));
services.AddTransient <Rafint_RIMSService> ();
services.AddHttpClient();
services.AddOptions();
string[] initialScopes = Configuration.GetValue<string>(
"Rafint-RIMS:ScopeForAccessToken")?.Split(' ');
services.AddMicrosoftIdentityWebAppAuthentication(Configuration)
.EnableTokenAcquisitionToCallDownstreamApi(initialScopes)
.AddInMemoryTokenCaches();
services.AddCors(options =>
{
options.AddDefaultPolicy(builder =>
builder.WithOrigins("https://rims.rafint.com" , "https://rims.rafint.com/api/TblTeamStdRoles",
"api://5153b62a-311b-4c00-a0d0-a896b0cdc908/TblTeamStdRoles.read")
.AllowAnyMethod()
.AllowAnyHeader());
});
services.AddControllersWithViews();
services.AddRazorPages().AddMvcOptions(options =>
{
var policy = new AuthorizationPolicyBuilder()
.RequireAuthenticatedUser()
.Build();
options.Filters.Add(new AuthorizeFilter(policy));
}).AddMicrosoftIdentityUI();
}
public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
{
if (env.IsDevelopment())
{
app.UseDeveloperExceptionPage();
app.UseWebAssemblyDebugging();
}
else
{
app.UseExceptionHandler("/Error");
}
app.UseBlazorFrameworkFiles();
app.UseStaticFiles();
app.UseRouting();
app.UseCors();
app.UseAuthentication();
app.UseAuthorization();
app.UseEndpoints(endpoints =>
{
endpoints.MapRazorPages();
endpoints.MapControllers();
endpoints.MapFallbackToFile("index.html");
});       

问题

程序.CS我需要访问数据库!!

据我所知,问题在于以下代码片段

services.AddCors(options =>  
{  
options.AddDefaultPolicy(builder =>  
builder.WithOrigins("https://rims.rafint.com"  , "[https://rims.rafint.com/api/TblTeamStdRoles"](https://rims.rafint.com/api/TblTeamStdRoles%22 "https://rims.rafint.com/api/tblteamstdroles%22"),  
"api://5153b62a-311b-4c00-a0d0-a896b0cdc908/TblTeamStdRoles.read")  
.AllowAnyMethod()  
.AllowAnyHeader());  
});  

要解决此问题,请尝试以下解决方法

  • 尝试为"api://5153b62a-311b-4c00-a0d0-a896b0cdc908/TblTeamStdRoles.read"添加https://
  • 否则,尝试仅包括两个链接(";https://rims.rafint.com"quot;https://rims.rafint.com/api/TblTeamStdRoles"(在builder.WithOrigins
  • 如果仍然发生,请使用AllowAnyOrigin,如下所示
Services.AddCors(options =>  
{  
options.AddDefaultPolicy(  
builder =>  
{  
builder.AllowAnyOrigin()  
.AllowAnyMethod()  
.AllowAnyHeader()  
.AllowCredentials();  
});  
});  

如果有帮助,请参阅以下参考资料

参考文献:

参考1、参考2、参考3

相关内容

  • 没有找到相关文章

最新更新