2017-11-23 10 views
0

최종 대상은 EnableCors이며 Sitecore에서 허용 도메인을 읽습니다. 그러나 initialize 파이프 라인에서 Sitecore 컨텍스트는 null이며 그 이유는 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

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 항목에서 데이터를 가져 오는 대신 구성 파일을 사용해서는 안됩니까?

+0

그러나 CD 서버에서는 웹 DB입니다. 하드 코딩의 종류가 아닙니다. 내가 틀렸다면 Plz 날 정정 해. – kandroid

+2

네가 맞아. 하드 코드 된 것입니다. 제 생각에는 Sitecore 항목의'initialize' 파이프 라인에 필요한 모든 데이터를 보관해서는 안됩니다. 대신 설정 파일을 사용하십시오. 그냥 다른 '' 태그를 추가하십시오. –

+0

요구 사항은 실제로 사이트 코어에서 가져옵니다. 아마도 내가 마스터 db가 null인지 확인해야합니다, 웹 DB에 대한 이동하십시오. 너 뭐라구? – kandroid