문제

내 사이트 모음의 사이트는 사용자 정의 속성을 사용하여 사이트의 "유형"을 결정합니다.예를 들어.

web.Properties["SiteCategory"] = "SomeCategory1";
.

사용자 정의 속성이있는 내 사이트 모음의 모든 사이트를 표시하기 위해 웹 파트 작성을 계획하고 있습니다.

여기에 계획하는 것의 스 니펫이 있습니다 :

SPSite site = SPContext.Current.Site;
foreach (SPWeb web in site.AllWebs)
{
  if (web.Properties["SiteCategory"] == "SomeCategory1") {
     /* Insert code to display the current site URL on the web part */
  }
}
.

결과가 현재 사용자에 대해 보안이 트리밍됩니까?아니면 사이트 모음의 모든 사이트를 표시 하시겠습니까?보안이 아닌지 확인해야합니다.

또한 성능이 현명합니다. 실행 가능한 옵션입니까?이 일을 할 수있는 다른 방법이 있다면 나는 모두 귀입니다.

도움이 되었습니까?

해결책

다음 코드를 사용하십시오.

using(SPSite site = new SPSite("http://example/site/"))
{
    using (SPWeb web = site.OpenWeb())
    {
        SPWebCollection webCollection = web.GetSubwebsForCurrentUser();

            foreach (SPWeb web in webCollection)
             {
                if (web.Properties["SiteCategory"] == "SomeCategory1")
                    {}
             }
    }
}
.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 sharepoint.stackexchange
scroll top