Определите сайты и веб-сайты SharePoint, к которым указанный пользователь может получить программный доступ? - PullRequest
0 голосов
/ 09 октября 2009

Мне нужно определить сайты и сети, к которым указанный пользователь может получить доступ в веб-приложении SharePoint через API-интерфейс SharePoint. Обратите внимание, что указанный пользователь отличается от текущего пользователя, который вызывает код. Сначала я думал об использовании PortalSiteMapProvider, но он не предлагает возможность изменить пользовательский контекст, в котором он построен. Кто-нибудь может предложить какие-либо альтернативы этому?

Спасибо, MagicAndi

Ответы [ 3 ]

2 голосов
/ 09 октября 2009
1 голос
/ 20 октября 2009

Не самое эффективное решение этой проблемы, но вы можете перебрать все семейства сайтов / веб-сайты в веб-приложении и затем вызвать:

web.DoesUserHavePermissions(userID, SPBasePermissions.Open)

где "web" - это объект SPWeb, а userID - это "DOMAIN \ user.name" пользователя, для которого вы проверяете права доступа. Сделайте это в RWEP и убедитесь, что вы правильно утилизируете объекты SPSite / SPWeb.

0 голосов
/ 19 октября 2009

Одним из возможных подходов является использование олицетворения для определения сайтов и веб-сайтов, к которым конкретный пользователь (кроме текущего пользователя) может получить доступ через PortalSiteMapProvider. Метод для олицетворения другого пользователя в контексте SharePoint описан здесь:

http://blackninjasoftware.com/2009/04/09/how-to-programmatically-impersonate-users-in-sharepoint/

...