Dan*_*n Z 4 cors asp.net-core-2.0
我有一个Angular 4应用程序,该应用程序在不同的服务器上调用使用asp.net core 1.1构建的Web api。前端和后端均配置为启用CORS。一切工作正常,直到后端升级到asp.net core 2.0。然后浏览器停止尊重从Web api发送的响应中的Set-Cookie标头。由于Web API使用Cookie进行会话管理,因此该应用程序停止了工作
在2.0版中,asp.net核心引入了一种新的行为:默认情况下,它向所有set-cookie标头添加一个“ samesite = lax”属性,从而有效地禁用了CORS。解决方案是在Startup.ConfigureServices中显式覆盖此默认行为:
services.AddSession(options =>
{
options.Cookie.SameSite = Microsoft.AspNetCore.Http.SameSiteMode.None;
});
Run Code Online (Sandbox Code Playgroud)
找到这个解决方案花了我很多时间,主要是因为在升级到2.0之后应用程序并没有立即中断,因此我将大部分精力都花在了寻找前端的罪魁祸首上。
它没有立即中断的原因是
在确定并解决了问题之后,我发现了来自其他开发人员的文章,这些开发人员来自与asp.net不同的平台,他们也遭受了由于此新引入的属性导致的意外问题。我希望我在这里写的内容可以使其他人免于遭受同样的痛苦。
归档时间: |
|
查看次数: |
1864 次 |
最近记录: |