首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >飞行前访问控制允许凭据

飞行前访问控制允许凭据
EN

Stack Overflow用户
提问于 2018-10-17 18:48:12
回答 1查看 1.5K关注 0票数 2

我的ASP.NET核心网络应用程序被部署为,我遇到了CORS的麻烦。前端部署为不同的应用程序服务。当我试图从前端访问Api时,我会得到以下错误。

加载https://chatclassifier.azurewebsites.net/chatcontroller/getchatData失败:对飞行前请求的响应没有通过访问控制检查:响应中的“访问控制-允许-凭据”标题的值为“”,当请求的凭据模式为“包括”时,该值必须为“true”。因此,“https://chatclassifierangularfrontend20180924084838.azurewebsites.net”源是不允许访问的。由XMLHttpRequest发起的请求的凭据模式由withCredentials属性控制。

我正在使用一些cookie在客户端和服务器之间传递数据。

我在ASP.NET Core中设置了更多的CORS策略,如Setup.cs中所示

配置服务:

代码语言:javascript
复制
public void ConfigureServices(IServiceCollection services)
{
    services.AddCors(options =>
    {
        options.AddPolicy("AllowAllHeaders",
               builder =>
               {
                   builder
              .WithOrigins("https://XXXXXXXXXXangularfrontend20180924084838.azurewebsites.net")
              .AllowAnyMethod()
              .AllowAnyHeader()
              .AllowCredentials();
               });
    });

    services.AddMvc().SetCompatibilityVersion(CompatibilityVersion.Version_2_1);

    services.Configure<FormOptions>(x =>
        {
            x.ValueLengthLimit = int.MaxValue;
            x.MultipartBodyLengthLimit = int.MaxValue;
        });
}

配置:

代码语言:javascript
复制
public void Configure(IApplicationBuilder app, IHostingEnvironment env)
{
    var cookiePolicyOptions = new CookiePolicyOptions
    {
        Secure = CookieSecurePolicy.SameAsRequest,
        MinimumSameSitePolicy = SameSiteMode.None
    };

    if (env.IsDevelopment())
    {
        app.UseDeveloperExceptionPage();
    }
    else
    {
    }

    app.UseCors("AllowAllHeaders");
    app.UseCookiePolicy(cookiePolicyOptions);
    app.UseHttpsRedirection();
    app.UseMiddleware(typeof(ApiExceptionHandling));
    app.UseMvc();
}

在我的API代码中,我没有在任何其他地方添加任何其他CORS相关代码。我尝试将CORS "AllowAllHeaders“属性添加到我的控制器中,但这也不起作用。

此外,我还在CORS下的Azure中添加了以下代码到我的web应用程序配置中。

显然,我已经更改了URL名称,包括XXXXXX,并确保它们在我的Azure Portal和Web应用程序代码中都是相同的。

任何帮助都将不胜感激!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-11-03 18:28:12

您不应该将配置与代码中的配置组合在一起。如果您在应用程序服务上启用CORS,您的CORS配置基本上在代码中被忽略。

这是由于App拦截了选项请求。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52861692

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档