结束目标是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
}
}
有什么办法可以实现这个目标吗?
答案 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"];
是的,这意味着数据库硬编码为master
或web
。
但Sitecore应用程序启动时会执行initialize
管道 - 您是否应该使用配置文件而不是从Sitecore项目获取该数据?