Я бы хотел указать путь к файлу .ASPNetCoreSession
для виртуального каталога, в котором в данный момент размещено приложение. Это, конечно, должно происходить динамически. В настоящее время путь установлен по умолчанию /
.
services.AddSession(options =>
{
options.Cookie.HttpOnly = true;
options.Cookie.Path = "/MyVirtual/DirectoryPath";
options.Cookie.Name = SessionCookieName;
options.IdleTimeout = TimeSpan.FromMinutes(15);
options.Cookie.SameSite = SameSiteMode.Strict;
options.Cookie.SecurePolicy = CookieSecurePolicy.Always;
});
Реализация токена защиты от подделки уже делает это из коробки, как и предполагалось, и я хотел бы сделать что-то подобное.
var pathBase = httpContext.Request.PathBase.ToString();
if (!string.IsNullOrEmpty(pathBase))
{
options.Path = pathBase;
}
К сожалению, эта реализация ограничена HttpContext
.
Я думал об использовании IPostConfigureOptions<T>
или IConfigureOptions<T>
для использования DI, но пока мне нужен доступ к текущему HttpContext
, который ограничен, я не вижу способа сделать это.
Я уверен, что должны быть другие способы получения виртуального каталога в классе Startup.cs
?