Windows身份验证抛弃了CORS?

时间:2017-10-31 19:24:36

标签: asp.net cors

我遇到一个问题,即我使用需要预检请求才能登录的Windows身份验证。但是,尽管我的启动文件中启用了CORS,但应用程序将无法执行预检" Allow-Access-Control -Origin"要求。

  

无法加载http://localhost:1190/api/test:对预检的响应   请求未通过访问控制检查:否   '访问控制允许来源'标题出现在请求的上   资源。起源' http://localhost:8080'因此是不允许的   访问。

我在localhost上运行SPA:8080

我有一个axios POST withCredentials

function identityLogin () {
  const url = BASE_URL + 'api/token'
  axios.get(url, {withCredentials: true}).then(response => {
    if (response.statusText === 'OK') {
     .....
    } else {
      ....
    }
  })
  .catch(error => {
    console.log(error)
    ....
  })
}

在我的startup.cs中我有

app.UseCors(builder => builder
                    .AllowAnyOrigin()
                    .AllowAnyMethod()
                    .AllowAnyHeader()
                    .AllowCredentials()
);

app.UseMvc();

然后,当我第一次获得Windows凭据时,之前的开发人员写了这个:

    [HttpGet("api/token")]
    [Authorize]
    public async Task<IActionResult> Get()
    {
        this.Response.Headers.Add("Access-Control-Allow-Origin", "http://localhost:8080");
        this.Response.Headers.Add("Access-Control-Allow-Headers", "Content-Type,Authorization");
        this.Response.Headers.Add("Access-Control-Allow-Methods", "GET,PUT,POST,DELETE,OPTIONS");
        this.Response.Headers.Add("Access-Control-Allow-Credentials", "true");
        .........
    }

是否持久且可能会弄乱UseCORS?是否存储了cookie?

我想要的所有Windows凭据都是检查数据库,然后使用令牌进行响应。

**编辑** 我指定的结果具有相同的结果。

app.UseMvc();

app.UseCors(builder => builder
       .WithOrigins("http://localhost:8080")
       .AllowAnyMethod()
       .AllowAnyHeader(
       .AllowCredentials());

1 个答案:

答案 0 :(得分:1)

startup.cs中的订单事项

app.UseCors必须在app.UseMvc之前:

app.UseCors(builder => builder
    .WithOrigins("http://localhost:8080") 
    .AllowAnyMethod()
    .AllowAnyHeader()
    .AllowCredentials());


app.UseMvc();