2017-10-23 3 views
0

Sitecore.ItemWebApi.config에있는 패치 된 특성을 읽고 Sitecore Item API가 내 사이트에서 사용되는지 여부를 확인하고 싶습니다. 내가 찾고있는이 값은 itemwebapi.mode이며 '꺼짐'으로 설정되어 있는지 확인하고 싶습니다.설정 파일에서 패치 된 속성 값을 읽으시겠습니까?

<site name="mysite"> 
    <patch:attribute name="itemwebapi.mode">StandardSecurity</patch:attribute> 
    <patch:attribute name="itemwebapi.access">ReadOnly</patch:attribute> 
    <patch:attribute name="itemwebapi.allowanonymousaccess">false</patch:attribute> 
</site> 

나는 ConfigurationManager.AppSettings["itemwebapi.mode"]을 시도했지만 null을 반환합니다. 이 값을 얻으려면 어떻게해야합니까?

답변

0

구성 자료를 읽으려면 sitecore 구성 팩토리을 사용해야한다고 생각합니다. (http://sitecore-community.github.io/docs/documentation/Sitecore%20Fundamentals/Sitecore%20Configuration%20Factory/#config_factory)

다음과 같이 시도해보십시오. 비슷한 방식으로 실험을하지 않는다면.

var refObj = Sitecore.Configuration.Factory.CreateObject("site/patch:attribute", true) as itemwebapi.mode; 

유용하지 않은 경우 댓글을 달아주세요. 나는 그것을 지울 것이다.

0

Properties 접근 자, 속성을 설정하지 않으면 값이 비어있는 경우 사이트 노드의 속성에 액세스 할 수 있습니다. 현재의 상황에 맞는 사이트의 경우 :

string mode = Sitecore.Context.Site.Properties["itemwebapi.mode"]; 
string access = Sitecore.Context.Site.Properties["itemwebapi.access"]; 
string anon = Sitecore.Context.Site.Properties["itemwebapi.allowanonymousaccess"]; 

당신이 (-/item/로 시작)는 ItemWebApi 요청에서 확인하는 경우 당신은 확인할 수 ItemWebApi.Context : 당신이 강하게 설정에 대한 액세스를 입력

if (Sitecore.ItemWebApi.Context.Current != null) 
{ 
    Mode mode = Sitecore.ItemWebApi.Context.Current.Settings.Mode; 
    AccessType access = Sitecore.ItemWebApi.Context.Current.Settings.Access; 
    bool anon = Sitecore.ItemWebApi.Context.Current.Settings.AnonymousAcessAllowed; 
} 

이 줄 것이다 열거 형을 사용합니다. 불행히도 RuntimeSettings()에 대한 오버로드 된 생성자는 내부 코드로 표시되므로 일반 웹 요청에서이 코드를 직접 새로 만들 수는 없지만 필요한 경우 코드를 확인하고 비슷한 작업을 수행 할 수 있습니다.

관련 문제