我正在使用 Angular10 和 .NET 核心 2.2。我已将 Startup.cs 配置为使用 XSRF-TOKEN 返回响应。后端正在返回它,但 Angular 不会将它传递给浏览器的 cookie。
服务端代码
// on ConfigureServices
services.AddAntiforgery(options =>
{
options.HeaderName = "X-XSRF-TOKEN";
});
// on Configure
app.Use(next => context =>
{
string path = context.Request.Path.Value;
if (path != null && path.ToLower().Contains("/api"))
{
var tokens = antiforgery.GetAndStoreTokens(context);
context.Response.Cookies.Append("XSRF-TOKEN", tokens.RequestToken,
new CookieOptions() { HttpOnly = false });
}
return next(context);
});
Run Code Online (Sandbox Code Playgroud) 在 ASP.NET Core 中使用 Angular 项目模板,其中 An angular 版本为 5,Dotnet Core 2.1
在这里,我尝试将本地环境设置为“生产”作为此命令
$env:ASPNETCORE_ENVIRONMENT = "Production"
Run Code Online (Sandbox Code Playgroud)
然后开始 DOTNET WATCH RUN
在此之后,我的环境仍然处于“开发模式”