Как настроить httponly и безопасный флаг в.net core 2.0?
Нет ошибки, но я не могу настроить статус httponly в браузере. Можете ли вы проверить мой код, пожалуйста.
public void ConfigureServices(IServiceCollection services)
{
services.AddDistributedMemoryCache();
services.AddMvc();
services.AddSession(options =>
{
// Set a short timeout for easy testing.
options.IdleTimeout = TimeSpan.FromMinutes(20);
options.Cookie.HttpOnly = true;
options.Cookie.SameSite = SameSiteMode.Strict;
options.Cookie.SecurePolicy = CookieSecurePolicy.Always;
});
}
public void Configure(IApplicationBuilder app, IHostingEnvironment env)
{
app.UseSession();
app.UseStaticFiles();
app.UseCookiePolicy(new CookiePolicyOptions
{
HttpOnly = HttpOnlyPolicy.Always,
Secure =CookieSecurePolicy.Always,
MinimumSameSitePolicy=SameSiteMode.None
});
}
2 ответа
Согласно документации ( https://docs.microsoft.com/en-us/aspnet/core/security/authentication/cookie?tabs=aspnetcore2x) вы можете настроить HttpOnly через IApplicationBuilder.UseCookiePolicy()
:
public void Configure(IApplicationBuilder app, IHostingEnvironment env)
{
/*..*/
app.UseStaticFiles();
app.UseSession();
app.UseCookiePolicy(new CookiePolicyOptions
{
HttpOnly = HttpOnlyPolicy.Always
});
}
В ASP.NET Core 2.X вы можете использовать следующий код:
public void ConfigureServices(IServiceCollection services)
{
// This can be removed after https://github.com/aspnet/IISIntegration/issues/371
services.AddAuthentication(
options =>
{
//Blah Blah Blah
}).AddCookie(opts =>
{
opts.Cookie.HttpOnly = false;
});
}
public void Configure(IApplicationBuilder app)
{
app.UseAuthentication();
}
Обратите внимание, что это изменилось с ASP.NET Core 1.X