2014-12-09 5 views
3

Привет Я использую клиентскую объектную модель в .net для доступа к данным sharepoint. У меня есть сайт, на котором у меня есть некоторые подсайты. из этих подсайтов некоторые сайты не являются мне доступными. Я хочу получить список этих дочерних сайтов (по крайней мере, заголовок для этого дочернего сайта), поэтому я могу сообщить пользователю, что это подсайты, на которых у него нет доступа.получить имя дочерних сайтов, на которых пользователь не имеет разрешения в sharepoint, используя модель объекта клиента

Есть ли способ достичь этого, используя объектную модель клиента в .Net.

В настоящее время я использую метод getubwebsforcurrentuser следующим образом: который дает мне список дочерних сайтов, на которых у меня есть доступ. но меня больше интересует название субсайта, на котором у меня нет доступа.

ClientContext clientContext = new ClientContext(path); 
       Web oWebsite = clientContext.Web; 
       WebCollection collWeb = oWebsite.GetSubwebsForCurrentUser(null); 
       clientContext.Load(collWeb); 

Раньше я использовал следующий код. который бросает serverunauthorizedaccessexception eception, очевидно, потому, что я не имею доступ на одном из дочернего

  ClientContext clientContext = new ClientContext(path); 
      Web oWebsite = clientContext.Web; 
      clientContext.Load(oWebsite, website => website.Webs, website => website.Title); 

Так любезно помочь мне, чтобы получить список дочерних узлов, на которых я не имею доступ, если есть способ это?

ответ

0

Не через CSOM благодаря ролям безопасности.

Но вы могли бы добиться этого с помощью веб-служб SharePoint, в частности, с использованием Webs.GetWebCollection method:

using(var proxy = new Webs()) 
{ 
    proxy.Url = webUri + "/_vti_bin/Webs.asmx"; 
    var result = proxy.GetWebCollection(); 
    var nodes = result.SelectNodes("*"); 
    foreach (XmlNode node in nodes) 
    { 
      var webTitle = node.Attributes["Title"].Value; 

    } 
} 
Смежные вопросы

 Смежные вопросы