启用会话时,AspNet Core CORS不起作用

时间:2017-06-10 16:44:24

标签: asp.net asp.net-core asp.net-core-webapi

 services.AddCors(options =>
            {
                options.AddPolicy("mypolicy",
                builder =>
                {
                    builder.AllowAnyHeader();
                    builder.AllowAnyMethod();
                    builder.AllowAnyOrigin();
                    builder.AllowCredentials();
                });
            });

app.UseCors("mypolicy");

[HttpGet("")]
public object Index(string hello)
{
  this.HttpContext.Session.SetString("hello", hello);
  return new {data = "Connected to API"};
}

Http使用

获取索引方法错误的请求

'否'访问控制 - 允许 - 来源'标题出现在请求的资源上。'

虽然在CORS配置中明确允许原点,但是什么是微软!??,如果我删除Session.SetString行,它的工作原理

1 个答案:

答案 0 :(得分:0)

如果我将您的代码放入一个新的1.1项目中,响应将使用Set-Cookie启动一个新会话并添加CORs头(请参阅下面的curl会话,省略一些头文件)。其他一切都必须出错。

> curl -i --header "Origin: http://foo.com" http://localhost:4354/

HTTP/1.1 200 OK
Server: Kestrel
Set-Cookie: .AspNetCore.Session=CfDJ8DI5n6m4L...; path=/; httponly
Access-Control-Allow-Credentials: true
Access-Control-Allow-Origin: http://foo.com