初始化管道中的 Sitecore 上下文

Sitecore context in the initialize pipeline

最终目标是 EnableCors 并从 Sitecore 读取允许的域。 但是在初始化管道中,Sitecore 上下文为空,这就是我无法从 Sitecore 读取任何内容的原因。

我有以下代码

public void Process(PipelineArgs args)
{
  GlobalConfiguration.Configure(config =>
  {
    var allowedDomain= //here I would like to read the domain from an item in 
                      //sitecore.
                    //BUT Context is always null here
    var cors = new EnableCorsAttribute(allowedDomain, "*", "*");
    config.EnableCors(cors);
    config.MapHttpAttributeRoutes();
    //....other code
 }
}

有什么办法可以实现吗??

您不需要 Sitecore.Context 来读取数据库中的项目。

您可以使用 Sitecore.Data.Database.GetDatabase(...).GetItem() 获取项目并读取其字段,例如

var settingsItem = Sitecore.Data.Database.GetDatabase("master").GetItem("/sitecore/content/Settings");
var allowedDomains = settingsItem["Allowed Domains"];

是的,这意味着数据库被硬编码为 masterweb

但是 initialize 管道在 Sitecore 应用程序启动时执行 - 您不应该使用配置文件而不是从 Sitecore 项目获取数据吗?