如何在注册路由类中获取当前基本URL?

问题描述 投票:0回答:1

我正在为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的一些主要途径,我首先需要检查插件当前工作的许可证密钥和域名是否有效。必须在编译时注册此路由。

asp.net asp.net-core nopcommerce-4.1
1个回答
0
投票

确保域名始终可用并不容易,因为程序员可以在配置文件或环境变量中定义域名。

此外,如果应用程序在AWS容器中运行,则配置稍微复杂一些,因为配置文件具有不同的结构。有一个Nuget-Package提供简单的东西,但仍然不是每个人都使用它。

因此,无法以防弹的方式确保您想要的东西。

如果有人能纠正我。我会很高兴,因为我有一个类似的问题,我可以为自己的应用程序解决,但我对我的解决方案感到不满意。

© www.soinside.com 2019 - 2024. All rights reserved.