Основываясь на документации и других сообщениях в блоге, кажется, что начиная с ASP. NET Core 3.0 вам необходимо реализовать DynamicRouteValueTransformer
для динамического изменения маршрута для заданного пути. Для меня это означало бы, что мне нужно создать HomePageTransformer
вроде этого:
public class HomeRouteTransformer : DynamicRouteValueTransformer
{
public override async ValueTask<RouteValueDictionary> TransformAsync(
HttpContext httpContext,
RouteValueDictionary values)
{
if (httpContext.User.Identity.IsAuthenticated)
{
// return RouteValueDictionary for authenticated users.
}
else
{
// return RouteValueDictionary for anonymous users.
}
}
}
, а затем зарегистрировать это в конфигурации запуска:
endpoint.MapDynamicControllerRoute<HomeRouteTransformer>("/");
Проблема в том, что на этом точка Пользователь пуст (т.е. не имеет никаких заявлений и не аутентифицирован), даже если он должен быть заполнен данными, потому что пользователь должен быть аутентифицирован в запросе. Кажется, что реализация DynamicRouteValueTransformer
здесь - неправильный подход. Есть предложения?