在ASP.NET Core 2.1中使用AWS负载平衡进行Cookie身份验证的解决方法如下:
services.AddAuthentication(CookieAuthenticationDefaults.AuthenticationScheme)
.AddCookie(options =>
{
options.Cookie.SecurePolicy = CookieSecurePolicy.Always;
options.Cookie.SameSite = SameSiteMode.None;
});
services.Configure(options =>
{
options.MinimumSameSitePolicy = SameSiteMode.None;
});
app.UseAuthentication();
.UseKestrel(options =>
{
options.Listen(IPAddress.Any, 80); // 监听HTTP流量
options.Listen(IPAddress.Any, 443, listenOptions =>
{
listenOptions.UseHttps(); // 监听HTTPS流量
listenOptions.UseForwardedHeaders(new ForwardedHeadersOptions
{
ForwardedHeaders = ForwardedHeaders.XForwardedFor | ForwardedHeaders.XForwardedProto
});
});
})
[AllowAnonymous]
public IActionResult SetCookie()
{
Response.Cookies.Append("MyCookie", "value", new CookieOptions
{
Secure = true,
SameSite = SameSiteMode.None
});
return View();
}
[AllowAnonymous]
public IActionResult GetCookie()
{
var cookieValue = Request.Cookies["MyCookie"];
return View(cookieValue);
}
这样,你就可以在ASP.NET Core 2.1中使用AWS负载平衡进行Cookie身份验证了。请注意,上述代码假设你已经在应用程序中安装了相应的NuGet软件包。