2010-01-13 2 views
0

У меня есть пользовательская веб-служба, развернутая в SharePoint, веб-метод этого веб-сервиса ожидает, что в качестве параметра будет использоваться document documentUri SharePoint. Поскольку он развертывается в среде SharePoint, я делаю это с помощью проверки подлинности SharePoint, но здесь возникает вопрос, как я могу проверить, является ли пользователь, запрашивающий для персонифицированного документа, аутриотом или нет? Другими словами, метод веб-службы должен возвращать какое-то несанкционированное исключение, если у пользователя нет прав на просмотр документа? Все, что у меня есть, - это документ SharePointUri для передачи в качестве параметра inpurt.Как проверить права на документы SharePoint?

спасибо.

ответ

1

Предполагая, что ваш веб-сервис развернут в контексте SharePoint в виртуальном каталоге/_vti_bin вашего сайта SharePoint, вы можете использовать объектную модель SharePoint, как показано ниже, чтобы проверить, имеет ли вызывающий пользователь определенные права на ваш документ. К сожалению, вызов CheckPermissions вызовет UnauthorizedException, если проверка завершится неудачей, поэтому его нужно будет поймать.

string uri = "http://localhost/Shared%20Documents/Document1.doc"; //full path to doc 
using (Microsoft.SharePoint.SPSite site = new Microsoft.SharePoint.SPSite(uri)) 
using (Microsoft.SharePoint.SPWeb web = site.OpenWeb()) 
{ 
Microsoft.SharePoint.SPListItem item = web.GetListItem(uri); 
item.CheckPermissions(Microsoft.SharePoint.SPBasePermissions.OpenItems); 
} 

Надеется, что это помогает,

Стив

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