Настройте путь cookie с помощью виртуального каталога в AddSession()
Я хотел бы установить путь .ASPNetCoreSession
файл cookie для виртуального каталога, в котором в данный момент размещено приложение. Это, конечно, должно происходить динамически. В настоящее время путь установлен /
по умолчанию.
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
учебный класс?
0 ответов
Хотя я не большой поклонник этой опции, но пока я просто добавлю свое собственное SessionMiddleware (которое зарегистрировано как часть UseSession()
в Configure
метод в Startup.cs
) где я получу виртуальный каталог из HttpContext
и установить Cookie.Path
через CookieBuilder
,