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