我正在为非商业购物车(ASP.NET核心2.1)开发插件。在RouteProvider类中注册路由之前,我需要访问当前域名以进行一些验证检查,但是当使用IHttpContextAccessor获取Httpcontext和当前域时,Httpcontext为空。
在路由提供商类中访问当前域名有什么解决方案吗?
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
}
}在我开发的应用程序中,用户首先输入插件应该工作的域名,然后购买plugin.After购买,我们生成一个与域名映射的许可证密钥,用户必须在插件设置中输入该许可证密钥。因为plugin覆盖了一些主要的非商业途径,我需要首先检查plugin当前工作的许可证密钥和域名是否有效。此路由必须在编译时注册。
发布于 2019-04-29 21:02:41
要确保域名始终可用并不容易,因为要由程序员在配置文件中或环境变量中定义它。
此外,如果应用程序在AWS容器中运行,则配置会稍微复杂一些,因为配置文件具有不同的结构。有一个Nuget包可以用来做一些简单的事情,但仍然不是每个人都使用它。
所以你想要的东西不能以防弹的方式得到保证。
如果有人能纠正我的话。我会很高兴,因为我有一个类似的问题,我可以解决我自己的应用程序,但我还不满意我的解决方案。
https://stackoverflow.com/questions/55889379
复制相似问题