public void ConfigureServices(IServiceCollection services)
{
// ...
services.AddAuthentication(CookieAuthenticationDefaults.AuthenticationScheme)
.AddCookie(options =>
{
options.Cookie.Name = "cookieName";
options.Cookie.SameSite = SameSiteMode.Strict;
options.Cookie.SecurePolicy = CookieSecurePolicy.Always;
options.Cookie.HttpOnly = true;
options.Cookie.IsEssential = true;
options.LoginPath = "/Account/Login";
options.LogoutPath = "/Account/Logout";
options.AccessDeniedPath = "/Account/AccessDenied";
});
// ...
}
public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
{
// ...
app.UseRouting();
app.UseAuthentication();
app.UseAuthorization();
// ...
}
[HttpGet]
public IActionResult Index()
{
string cookieValue = HttpContext.Request.Cookies["cookieName"];
if (string.IsNullOrEmpty(cookieValue))
{
cookieValue = Guid.NewGuid().ToString();
var cookieOptions = new CookieOptions
{
HttpOnly = true,
Secure = true,
SameSite = SameSiteMode.Strict,
Expires = DateTimeOffset.UtcNow.AddDays(7)
};
HttpContext.Response.Cookies.Append("cookieName", cookieValue, cookieOptions);
}
return View();
}
通过添加上述代码,我们就可以在ASP.NET Core应用程序的第一个请求/响应中获取cookieValue了。