初始化管道中的Sitecore上下文

时间:2017-11-23 09:38:06

标签: asp.net-web-api sitecore

结束目标是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
 }
}

有什么办法可以实现这个目标吗?

1 个答案:

答案 0 :(得分:1)

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

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

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

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

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