Как получить текущий базовый URL в регистре класса маршрута? - PullRequest
0 голосов
/ 28 апреля 2019

Я разрабатываю плагин для корзины покупок nopcommerce (ASP.NET Core 2.1). Перед регистрацией маршрутов в классе RouteProvider мне необходимо получить доступ к текущему имени домена для некоторых проверок проверки, но при использовании IHttpContextAccessor для получения Httpcontext и получения текущего домена Httpcontext имеет значение null.

Есть ли какое-либо решение для доступа к текущему доменному имени в классе поставщика маршрутов?

 public void RegisterRoutes(IRouteBuilder routes)
 {
    var httpContextAccessor = EngineContext.Current.Resolve<IHttpContextAccessor>();
    var domainName = httpContextAccessor.HttpContext.Request.Host.Value.ToString();

    var pluginValidtyChecker = new PluginValidityChecker.ValidityChecker();
    if (pluginValidtyChecker.CheckIsValid(domainName))
    {

     //Register routes

    }
 }

В приложении, разработанном мной, пользователи сначала вводят доменное имя, над которым должен работать плагин, а затем покупают плагин. После покупки мы генерируем лицензионный ключ, который сопоставляется с доменным именем, и пользователям необходимо ввести этот лицензионный ключ в настройках плагина. Поскольку плагин перекрывает какой-то основной маршрут nopcommerce, мне нужно сначала проверить, работает ли лицензионный ключ и доменное имя, над которым в данный момент работает плагин, или нет. Этот маршрут должен быть зарегистрирован во время компиляции.

1 Ответ

0 голосов
/ 29 апреля 2019

Нелегко гарантировать, что доменное имя всегда доступно, потому что программисты должны определить его либо в файле конфигурации, либо в качестве переменной среды.

Кроме того, если приложениевыполняется в AWS-контейнере, конфигурация немного сложнее, потому что файл конфигурации имеет другую структуру.Существует Nuget-Package, в котором есть все, что нужно, но не все его используют.

Так что то, что вы хотите, не может быть обеспечено пуленепробиваемым способом.

Если кто-нибудь сможет меня поправить,Я был бы очень счастлив, потому что у меня была похожая проблема, которую я мог решить для своего собственного приложения, но я еще не доволен своим решением.

...